【问题标题】:Getting Retina Screen Resolution on Macs with HiDPI in Unity在 Unity 中使用 HiDPI 在 Mac 上获取 Retina 屏幕分辨率
【发布时间】:2019-01-11 01:33:37
【问题描述】:

我正在制作一个自定义 Unity 编辑器 GUI 窗口,我只想让它保持在屏幕的正中心。令人惊讶的是,这比我想象的在 Mac 上更难。

这是我的代码:

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

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

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

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

另外,如果有办法获得整个 Unity 编辑器窗口(而不是游戏窗口)的大小,我会接受的。提前致谢!

【问题讨论】:

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


    【解决方案1】:

    Editor中,Screen.currentResolution显示游戏窗口的分辨率。您可以启用Maximize On Play以使用最大化的窗口分辨率。

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

    【讨论】:

    • 至少对我来说,在editor中,Screen.currentResolution仍然返回屏幕“物理像素尺寸”的分辨率,不是 游戏窗口的分辨率。此外,我需要的是 HiDPI 模拟屏幕分辨率。谢谢!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      相关资源
      最近更新 更多