Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配

Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配

排除代码和Resolution and Presentation面板设置问题

如果程序还是不能按照预期的分辨率运行,应该是系统注册表记录了对应的设置。

解决方案:

打开注册表,使用快捷键“Win”+ "R"组合快捷键。在打开后面键入命令:Regedit

www.zeeklog.com  - Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配

注册表路径:

  • HKEY_CURRENT_USER\Software\ [CompanyName] \ [ProductName]

看Key的名称就知道表示的是哪一个参数,就很直白

www.zeeklog.com  - Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配

问题分析

  • 使用电视机做显示器比较容易出现这些问题,看注册表就知道了;
  • Screenmanager Resolution Width_h182942802,Screenmanager Resolution Height_h2627697771,当这两个key的值跟你程序中的设置的分辨率不一致时,没错就是这里出问题了,改成需要的分辨率就好了,注意进制哦。
  • Screenmanager Fullscreen mode_h3630240806,全屏问题看这个。

减小出现问题的概率

Resolution面板

www.zeeklog.com  - Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配
  • 然后在Awake里面设置需要的分辨率,

Screen.SetResolution(1920, 1080, true);

Screen.fullScreen = true;

或者:

然后按照路径找到该注册表

HKEY_CURRENT_USER\Software\ [CompanyName] \ [ProductName]

CompanyName 是打包里的公司名

ProductName 是打包里的项目名

直接删除此条数据,或者更改公司名,项目名重新注册,再次运行项目