AI角色按照一定的移动逻辑进行移動时AI逻辑处理角色需要移动的位置,还需要移动逻辑实时处理角色的当前速度和角度官方的示例中角色的移动是通过设置速度之后,依靠动画的位移来实现的所以代码中只需要设置角色的速度和角度即可。Animator控件中的Apply Root Motion需要勾选这样才能使用动画中的位移,而不需要在玳码中更新角色坐标勾选之后也不能通过代码更新了。
其中的nav是绑定在角色身上的navMeshAgentdeadZone是忽略区间,当实际角度和目标角度的差值在忽略區间内时就不再改变方向了这样可以避免走曲线。
navMeshAgent的作用是给定一个位置可以告诉我们该怎么走但是具体怎么走过去,速度方向的設置还是需要我们自己来设置的,就像一个复杂的A星算法一样