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

Unity3d 在Unity中使用HiDPI在Mac上获得视网膜屏幕分辨率,unity3d,screen-resolution,retina-display,unity-editor,hidpi,Unity3d,Screen Resolution,Retina Display,Unity Editor,Hidpi,我正在制作一个定制的Unity编辑器GUI窗口,我只希望它保持在屏幕的正中央。令人惊讶的是,这比我在Mac电脑上想象的要难 这是我的代码: .... windowRect.center = new Rect(0, 0, Screen.currentResolution.width, Screen.currentResolution.height).center; .... 问题是,在5K iMac上,其本机分辨率为5120*2880,默认情况下,macOS使用HiDPI将所有内容缩放到2560

我正在制作一个定制的Unity编辑器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编辑器窗口(而不是游戏窗口)的大小,我也可以。提前谢谢

编辑器中,屏幕。当前分辨率显示游戏窗口的分辨率。您可以启用“播放时最大化”以使用最大化窗口分辨率


如果您部署到MacOS应用程序,它应该是正确的5K分辨率。

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

就我所见,文档中没有提到这一点,因此我不确定从长远来看是否可靠,但Unity 2018.3目前就是这样。

至少对我来说,在编辑器中,Screen.currentResolution仍然返回屏幕“物理像素尺寸”的分辨率,而不是游戏窗口的分辨率。此外,我需要的是HiDPI模拟屏幕分辨率。谢谢