我希望我的游戏拥有1:1的宽高比,但会扩大到一定数量。这意味着宽度和高度必须相同,但绝不大于实际的屏幕尺寸。在此基础上,为了确保一致的像素大小,宽度和高度值必须是2值的幂。
我没有任何问题找出所需的价值。
int value = 2;
int limit = Screen.currentResolution.height;
while (value * 2 < limit) value *= 2;
Debug.Log(value);
我更不知道在甚至显示启动图像之前如何设置窗口大小。有什么方法可以做到这一点吗?
答案 0 :(得分:3)
是的,有,但这意味着您需要摆脱启动窗口。
原因是,如果启用启动窗口(您可以从中选择分辨率,质量,窗口或全屏模式等),Unity将显示仅视频卡可用的分辨率 - 以及这意味着没有1:1的宽高比分辨率。
因此,为此,您需要按如下方式设置播放器设置:
重要的是禁用['9,11', '10,8,1', '10,70', '70,10']
。
然后,您可以通过停用Display Resolution Dialog
来设置Default Screen Width
和Height
。
请注意,独立版将被强制执行此操作,并且只有此开始时的分辨率 - 在启动画面之后,您可以通过从加载的第一个场景中的任何脚本调用Default Is Native Resolution
方法来设置所需的任何分辨率。
当然,您可以通过取消勾选/勾选Screen.SetResolution
选项,在窗口模式或全屏模式下启动独立启动。
这就是它,如果你想给用户提供从1:1 AR分辨率列表中进行选择的选项,那么你现在就无法做到这一点。
修改:播放器设置的解析信息存储在Default Is Full Screen
内的注册表中。
这三个键是:
HKEY_CURRENT_USER\Software\[YourCompanyName]\[YourGameName]
要在运行时从游戏内部更改这些内容,您需要使用:
Screenmanager Is Fullscreen mode
Screenmanager Resolution Height
Screenmanager Resolution Width
下次启动游戏时会读取这些内容,在启动画面之前设置起始分辨率。