第三天
为John添加Rigidbody组件
该组件标记的对象是物理系统的一部分并且可以移动,我们希望John可以移动,并且会不穿墙。
选中John,在inspector窗口中点击Add Componet,搜索rigidbody组件保存后运行将会出现一点问题,John瞬间下落了一小段距离然后停止了。
Animator
Apply Root Motion
Animator组件上启用了“Apply Root Motion”,大多数的运动是相对于其父对象完成的,而John没有父对象,所以他的运动不是相对的。Animator正处于空闲状态,所以应该不会运动,但他却移动了一小段,正是由于Animator的更新模式。
动画的更新模式
Update loop:
对触发条件反映的更新。
Fixed Update:
默认的更新,动画将按顺序循环播放。
Animator组件作用于Updata loop的同时Rigidbody组件也作用于Fixed Update从而产生了冲突。
解决问题
Inspector窗口中单击Open(若没有Prefab栏,将Hierachy窗口中的JohnLmon拖入Asset/prefab中)
更新模式改为Animate Physics
该改变将会使该Animator组件与物理效果同时作用于John。不会出现竞争的情况。
限制John的运动
Constraints选项
为了使John的运动符合期望,所以要限制他的运动轨迹。我们不希望John在Y轴上运动,并且不希望他绕X轴或Z轴旋转,因为这不是正常的运动轨迹。
勾选相应的方块
添加 Collider 组件
同样的方法加入Capsule Collider组件,调整参数让形状大小到刚好装下John
这样角色就会对物理碰撞产生反应了。
保存完成