2023 / 8 / 23
虽然很少使用RootMotion动画,但是不得不说,对于八方移动而言,RootMotion动画是真的方便,但是它处理NPC的移动确实很多时候有很多不必要的麻烦。我暂时还没有遇到动画影响到物理的问题,因此这里简单做一下记录,方便以后遇到这个问题时有笔记。
当没使用RootMotion动画时,同时没有从它手上夺回移动的控制权时,会出现Rigidbody的重力不启用的情况,这里解决问题的方式也很简单。
只需要找到相对应的,正在使用的RootMotion动画,然后将动画中的垂直方向上的位移设置为BakeIntoPose即可。
记住在后续激活Rigidbody开始使用时,开启限制 FreezeRotation.x.z 不然不要奇怪为什么角色会倒地。 建议还是用OnAnimatorMove方法接管位移控制权,虽然RootMotion确实可以方便解决走路打漂的问题,但是后续问题确实还是有些一言难尽。关于为什么使用FixedUpdate方法,因为在使用OnAnimatorMove方法时,将Animator的Update Mode修改为 Animate Physics后已经与物理引擎同步了。
Ps.调用时间是在FixedUpdate之后,在物理引擎计算之前。