原因
在骨骼开启Optimize Game Object后,遇到了一些情况,这里记录一下。
动画播放异常
在游戏中发现动态切换模型,之后的动画就播放异常,查找发现在挂载动画文件前,对模型添加了一个子节点,导致动画生效的时候,找不到这个新增节点的动画帧,造成错乱。
所以要等Animator
的runtimeAnimatorController
挂载完毕,再添加子节点。
编辑器下断言报错
在角色对象销毁的时候,编辑器会出现断言报错:
经过分析,发现报错的数量跟模型的SkinnedMeshRenderer
数量一样,然后发现去掉updateWhenOffscreen
选项的话就不会报错,但是并没有消除所有断言,目前在移动端暂没发现问题,所以就先在编辑器下解决这个断言,在对象销毁的时候恢复骨骼优化,代码如下:
#if UNITY_EDITOR
if (ModelObj)
{
AnimatorUtility.DeoptimizeTransformHierarchy(ModelObj);
}
#endif