gpt4 book ai didi

c# - Unity - 窗口大小取决于屏幕大小

转载 作者:太空宇宙 更新时间:2023-11-03 21:04:00 24 4
gpt4 key购买 nike

我希望我的游戏具有 1:1 的宽高比,但可以放大到一定比例。这意味着宽度和高度必须相同,但绝不能大于实际屏幕尺寸。除此之外,为确保像素大小一致,宽度和高度值必须是 2 的幂值。

我在计算所需值时没有遇到任何问题。

int value = 2;
int limit = Screen.currentResolution.height;
while (value * 2 < limit) value *= 2;
Debug.Log(value);

我什至不知道如何在显示初始图像之前设置窗口大小。有什么办法可以做到这一点吗?

最佳答案

是的,有,但这意味着您需要摆脱启动窗口。

原因是,如果您启用启动窗口(您可以从中选择分辨率、质量、窗口或全屏模式等),Unity 将显示视频卡的可用分辨率 - 并且这意味着没有可用的 1:1 纵横比分辨率。

因此,为了做到这一点,您需要按如下方式设置播放器设置:

enter image description here

重要的部分是禁用Display Resolution Dialog。然后通过禁用 Default Is Native Resolution 来设置 Default Screen WidthHeight

请注意,独立版将在开始时强制使用此分辨率,并且只有此分辨率 - 在初始屏幕之后,您可以通过从第一个场景加载。当然,您可以通过取消选中/勾选 Default Is Full Screen 选项,使独立版以窗口或全屏模式启动。

差不多就是这样,如果您想让用户从 1:1 AR 分辨率列表中进行选择,您现在根本做不到。

编辑:Player Settings 的分辨率信息存储在 HKEY_CURRENT_USER\Software\[YourCompanyName]\[YourGameName] 的注册表中。3 个键是这些:

Screenmanager Is Fullscreen mode
Screenmanager Resolution Height
Screenmanager Resolution Width

要在运行时从游戏内部更改这些内容,您需要使用:

PlayerPrefs.SetInt("Screenmanager Is Fullscreen mode", [0/1]);
PlayerPrefs.SetInt("Screenmanager Resolution Height", [HeighthRes]);
PlayerPrefs.SetInt("Screenmanager Resolution Width", [WidthRes]);

这些将在下次启动游戏时读取,设置启动画面之前的起始分辨率。

关于c# - Unity - 窗口大小取决于屏幕大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42469754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com