[动画] 使用 Unity 引擎时有哪些禁忌?带解决方案

查看:526 |回复:1 | 2021-10-8 09:31:20

您需要 登录 才可以下载或查看,没有账号?注册

x
其实程序方面的禁忌还是挺多的。
先说一个比较常见而又冷门的:unity编辑器卡死。
早期开发由于很多的不规范,所以导致unity卡死情况是很常见的,最多时一天能卡死十几次。所以后来就总结了些经验了。
1.线程导致。如果在游戏关闭了,子线程没有关闭,那么在下次游戏启动时,很大情况下会卡死。
而往往有些线程,游戏不关闭是不会关闭的,例如socket的线程。
解决方案是,让一个MonoBehaviour伴随游戏的生命周期,然后在移除的时候关闭线程。
2.死循环导致。这个不用解释了。
3.VS调试导致。偶尔出现,任务管理器显示VS内存在增加,等一段时间有几率正常。初步认为是unity在等待VS响应,所以卡住了。
解决方案是停止调试。
极端情况是VS也未响应,这时候应该要关掉VS,因为unity很有可能有未保存的修改。
4.大量log导致,伪卡死。log输出是挺耗时的,如果过多,会导致你整个界面卡住。
这种情况可以看任务管理器进行排除,如果是内存一直在增长,那么就不是卡死了。
解决方案,减少不必要的log,对update方法的逻辑排除,尽量避免出现大量的log。
5.开启游戏时卡死。有些时候场景初始化时间过长会让人以为是卡死。
建议适当的把初始化的逻辑分几帧执行,最好加进度条或者标识。

6.运行时状态,修改代码,然后触发Unity重新编译,此过程可能会涉及大量代码序列化和反序列化,等待响应的时间有可能会比较长(伪卡死)。也有可能有些对象不能序列化,然后再编译完成后,运行的代码会出现大量访问空对象错误,大量的Error输出,导致类似4的情况



2021-10-8 09:31:20  
 赞 赞 0

使用道具 登录

1个回答,把该问题分享到群,邀请大神一起回答。
2#
感谢分享
回复 收起回复
2021-10-8 14:52:29   回复
 赞 赞 1

使用道具 登录

CG 游戏行业专业问题

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表