我正在寻找一种整洁的方法来设置Windows下Unity单机构建的最低分辨率。
Unity版本:2019.1.2f1
目前正在使用下面的Update里面。
#if !UNITY_EDITOR
if (Screen.width < 800 || Screen.height < 450)
Screen.SetResolution(800, 450, false);
#endif
你的代码看起来不错。没有其他方法来设置最小分辨率。
但你必须把它从Update循环中移出. 调用所有的帧是不太行得通的,而且我没有看到有效的情况下,一个分辨率可能在运行时自己改变。
我建议把这个脚本放到 Awake
的 MonoBehaviour
在你游戏的第一个场景中。
public class ResolutionStarer : MonoBehaviour
{
private void Awake()
{
#if !UNITY_EDITOR
if (Screen.width < 800 || Screen.height < 450)
Screen.SetResolution(800, 450, false);
#endif
}
}
你也可以看看 此剧本 (麻省理工学院的一个库),处理分辨率,并为你提供更多的选项,如改变分辨率或设置游戏窗口化。
不过,为了这个问题,他们还是使用了同样的检查方法,针对的是 Screen.width
和 Screen.height
以免低于 _minWidth
和 _minHeight
的决议。而且他们使用同样的方法 Screen.SetResolution
来设置分辨率。