【Unity3D】如何解决打包时候分辨率失效的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/wenxuhonghe/article/details/88916084

在unity完成一个自定义分辨率的游戏,打包成 PC 版本时,经常会遇到一个问题,就是明明已经在 build setting 中设定了分辨率,为什么打包后运行时却失效了?本文将讲解如何解决打包时分辨率失效的问题。

为什么分辨率会重置?

当你用 Unity 构建一个新的游戏时,他会为你在 Player Settings 的公司名称下保存一个 注册表键(windows 中)preference file( Mac 上)

默认情况下,这是 DefaultCompany。在第一次打包时,Unity 会自动像注册表中注册打包信息,后续打包时,如果公司名称没有变的话,注册表键preference file 还包含之前显示设置和其他设置,不会覆盖当前你新构建的设置,也就是说下次打包即使重新设置分辨率也没用。
图1

如何解决

方法一:修改项目名称

修改项目名称(Product Name),重新打包。(这种方法比较草率,治标不治本)

图2

方法二:修改注册表

  • Win + R ,在运行窗口输入 regedit ,回车打开注册表。

图3

  • Unity 注册的位置在 HKEY_CURRENT_USER \ Software \ (公司名称) \ (项目名称)

图4

  • 修改分辨率的高和宽,下次打包即可生效。

方法三:

此外还可以用代码来控制(大招,最终解决方案),在加载的第一个场景中的 C# 脚本中,Start() 函数中加入以下代码即可。

void Start()
{
    // width 和 height 为分辨率的宽和高
    Screen.SetResolution(width,height,true);
}

参考资料

【1】Unity打包PC分辨率不能修改的问题 – CSDN
【2】Unity3d 发布EXE后分辨率的问题处理 – CSDN
【3】Unity发布自定义分辨率程序 – CSDN

猜你喜欢

转载自blog.csdn.net/wenxuhonghe/article/details/88916084