在Unity中使用HiDPI在Mac上获取视网膜屏幕分辨率

时间:2018-08-03 07:56:07

标签: unity3d screen-resolution retina-display unity-editor hidpi

我正在制作一个自定义的Unity Editor GUI窗口,我只希望它停留在屏幕的确切中心。出乎意料的是,这比我在Mac上想象的要难。

这是我的代码:

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

问题是,在5K iMac上,其原始分辨率为5120 * 2880,默认情况下,macOS使用HiDPI将所有内容缩放到2560 * 1440。在Unity中, Screen.currentResolution 会返回5120 * 2880,而不考虑HiDPI缩放比例,但是我需要那种甜美的缩放分辨率。

我也尝试了其他功能。 Display.main.systemWidth 返回1920,而不是5120或2560。

有没有办法做到这一点?还是我只是运气不好?我正在使用Unity 2018.1.9f1。

此外,如果有一种方法可以获取整个Unity Editor窗口(而不是游戏窗口)的大小,那么我会满意的。预先感谢!

2 个答案:

答案 0 :(得分:0)

编辑器中, Screen.currentResolution 显示游戏窗口的分辨率。您可以启用最大化播放时间以使用最大化的窗口分辨率。

如果您部署到MacOS应用,则应该正确地使用5K分辨率。

答案 1 :(得分:0)

这是在一个旧线程中,但如果有人仍然想知道,我发现 Screen.resolutions 在视网膜设备上返回的最高分辨率是 «magic » 分辨率。这是您在设备设置中看到的“看起来像 X x Y”。

据我所知,文档中没有提到这一点,所以我不确定从长远来看是否可以依赖,但目前 Unity 2018.3 就是这种情况。

相关问题