在 Build 时,可以通过 Player Settings 中的 Fullscreen Mode 来修改游戏默认的屏幕分辨率:

分辨率设置

但是,一些情况下,这个设置并不会生效。这是因为游戏在首次启动时,会将此次的屏幕分辨率注册到 Windows 注册表中。之后,游戏每次启动时,都会从注册表中读取屏幕分辨率,而不是从 Player Settings 中读取。

针对情景的不同,一般有两种解决方案。

删除注册表项

如果是在开发环境,需要检查游戏默认设置的分辨率表现,可以通过删除注册表项来解决。路径为:Computer\HKEY_CURRENT_USER\Software\[company name]\[product name],删除其中的 Screenmanager Resolution HeightScreenmanager Resolution WidthScreenmanager 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);
    }
}

更好的做法是,在首次运行时,读取并使用当前设备的屏幕分辨率,并在游戏中提供修改分辨率的选项。