一.打包Windows程序,概率性出现无法全屏或分辨率不匹配等问题
注册表路径:
HKEY_CURRENT_USER\Software\ [CompanyName] \ [ProductName]
看Key的名称就知道表示的是哪一个参数,就很直白
| key | type | value |
|---|---|---|
| Screenmanager Fullscreen mode_h3630240806 | REG_DWORD | 0:非全屏 /1:全屏 |
| UnityGraphicsQuality_h1669003810 | REG_DWORD | 0-5:画质等级 |
| UnitySelectMonitor_h17969598 | REG_DWORD | 1:显示器索引 |
| Screenmanager Resolution Width_h182942802 | REG_DWORD | 1920:默认是十六进制表示,可以换成十进制 |
| Screenmanager Resolution Height_h2627697771 | REG_DWORD | 1080:默认是十六进制表示,可以换成十进制 |
问题分析
- Screenmanager Resolution Width_h182942802,Screenmanager Resolution Height_h2627697771,当这两个key的值跟你程序中的设置的分辨率不一致时,没错就是这里出问题了,改成需要的分辨率就好了,注意进制哦。
- Screenmanager Fullscreen mode_h3630240806,全屏问题看这个。
减小出现问题的概率
Resolution and Presentation面板

然后在初始化的时候设置目标的分辨率
Screen.SetResolution(1920, 1080, true);
Screen.fullScreen = true;
二.ScriptableObject本地序列化后,重启或打包重新编译之后,无法使用ScriptableObject,报错提示:The associated script can not be loaded.Please fix any compile errors and assign a valid script的坑;
保证本地序列化的ScriptableObject与实体脚本文件(类名.cs文件)名称一致即可。
三.点击事件接口:使用点击等Pointer事件接口时,须引用OnClick接口,以避免父子层级点击时出现点击错乱的bug。
四.碰撞检测的范围,物体太小会出现碰撞计算错误问题。
五.安卓运行异常:
问题一:打包安卓应用,涉及到权限,发布的apk安装时不提示APP所需要的任何权限,打开APP之后出现异常(具体表现为:1.卡死在某一界面;2.无任何权限请求弹窗)
解决办法:
- 在Plugins目录下新建安卓配置文件Manifest,并写入权限:

- 在Player设置中勾选使用自定义配置表:

问题二:
晚点再整理吧
六.动画状态机过渡问题
首尾帧尽量保持一致,尤其是一些缩放及位置上的变化,否则可能会导致动画状态的错乱,同时还要注意过渡状态及动画融合。
本文探讨了Windows应用程序打包时可能出现的全屏和分辨率不匹配问题,提供了修改注册表键值的解决方案。此外,还涉及Unity游戏的ScriptableObject序列化问题,确保脚本名称与文件一致以避免加载错误。同时,提到了使用OnClick事件接口避免点击错乱的建议,以及解决物体碰撞检测误差的方法。在安卓打包方面,讨论了权限配置和自定义Manifest文件的重要性。最后,提到了动画状态机过渡的注意事项,强调首尾帧和过渡状态的一致性。
1359

被折叠的 条评论
为什么被折叠?



