unity3d 使用Unity中的HiDPI在Mac上获得Retina屏幕分辨率

huwehgph  于 2023-03-19  发布在  Mac
关注(0)|答案(4)|浏览(185)

我正在制作一个自定义的Unity Editor GUI窗口,我只想让它停留在屏幕的确切中心。令人惊讶的是,这比我想象的在Mac上要难。
这是我的代码:

....
windowRect.center = new Rect(0, 0, Screen.currentResolution.width, Screen.currentResolution.height).center;
....

问题是,在5K iMac上,原生分辨率为51202880,默认情况下,macOS使用HiDPI将所有内容缩放到25601440。在Unity中,Screen.currentResolution返回5120*2880,而不考虑HiDPI缩放,但我需要这种甜美的缩放分辨率。
我也尝试过其他函数。Display.main.systemWidth返回1920,而不是5120或2560。
有没有办法做到这一点?或者我只是运气不好?我正在使用Unity 2018. 1. 9 F1。
另外,如果有一种方法可以获得整个Unity编辑器窗口(而不是游戏窗口)的大小,我会很满意的。

b1payxdu

b1payxdu1#

Editor中,Screen.currentResolution显示游戏窗口的分辨率。您可以启用播放时最大化以使用最大化的窗口分辨率。
如果你部署到MacOS应用程序,它应该是正确的5K分辨率。

9o685dep

9o685dep2#

这是一个老线索,但如果有人仍然想知道,我发现屏幕返回的最高分辨率。视网膜设备上的分辨率是"魔术“分辨率。它是你在设备设置中看到的"看起来像X x Y”。
据我所知,文档中没有提到这一点,所以我不确定是否可以长期依赖,但Unity 2018.3目前就是这种情况。

wpcxdonn

wpcxdonn3#

不太一样的屏幕中心,但我有一个类似的问题,并解决了它使用:

EditorGUIUtility.GetMainWindowPosition().center;
bqucvtff

bqucvtff4#

我遇到了相同的问题。您可能正在查找以下任何问题

EditorGUIUtility.pixelsPerPoint
EditorGUIUtility.PointsToPixels
EditorGUIUtility.PixelsToPoints

相关问题