Unity Animator不勾选Apply Root Motion的情况下改变模型旋转

来源:互联网 发布:sql select语句- 编辑:程序博客网 时间:2024/05/28 18:43


我在Unity简单制作了模型跳跃的姿势,并没有记录跳跃的位置信息,希望用RigidBody来模拟跳跃,如果勾选了Apply Root Motion会导致物理不能正常模拟。

我希望模型在左右移动时通过旋转改变朝向,所以在动画播放过程中需要对模型旋转。但是Animator组件如果不勾选Apply Root Motion 该模型根节点的位置或旋转就会受动画中的位置或旋转控制,也就是说如果不勾选Apply Root Motion就不能在动画执行过程中改变模型的旋转。

实现需求需要不勾选Apply Root Motion同时又能改变模型的旋转,两者出现了矛盾。

做了以下尝试:

1. 先Animator.Stop()停止动画,改变模型旋转后再Animator.Play()播放动画。结果动画停止了,模型也旋转了但是动画并没有重新播放。

2. 先设置Apply Root Motion为true,改变模型旋转后再设置回false。结果旋转不起作用。

3. 新建一个GameObject作为模型的父节点,不直接旋转模型,而是通过旋转父节点来改变子节点旋转。结果完美实现了需求。

0 0
原创粉丝点击