在 Build 时,可以通过 Player Settings 中的 Fullscreen Mode 来修改游戏默认的屏幕分辨率:
但是,一些情况下,这个设置并不会生效。这是因为游戏在首次启动时,会将此次的屏幕分辨率注册到 Windows 注册表中。之后,游戏每次启动时,都会从注册表中读取屏幕分辨率,而不是从 Player Settings 中读取。
针对情景的不同,一般有两种解决方案。
删除注册表项
如果是在开发环境,需要检查游戏默认设置的分辨率表现,可以通过删除注册表项来解决。路径为:Computer\HKEY_CURRENT_USER\Software\[company name]\[product name]
,删除其中的 Screenmanager Resolution Height
、Screenmanager Resolution Width
和 Screenmanager Is Fullscreen mode
三个键值即可。
通过代码修改
如果是在发布环境,最好是通过代码来修改屏幕分辨率。可以通过以下代码来实现:
using UnityEngine;
public class ScreenResolution : MonoBehaviour
{
public int width = 1920;
public int height = 1080;
public bool fullscreen = true;
void Awake()
{
Screen.SetResolution(width, height, fullscreen);
}
}
更好的做法是,在首次运行时,读取并使用当前设备的屏幕分辨率,并在游戏中提供修改分辨率的选项。