大神。。。又遇到n多的问题。。
我在角色身上加上了NavMeshAgent组建,然后渲染了导航网格,在我没有给角色添加动画之前,一切都是正常的。直到我给角色添加了一个动画控制器......
然后设置了一个bool值(isRun)来切换两个状态之间的动画。
在角色的Update里面,添加了以下代码:
// Other Code In Function Updata
if (Input.GetMouseButtonDown (0)) {
// 设定要移动到的目标位置
RaycastHit hits = TestMouseHitOnTerrain();
if( hits != null )
m_nav.destination = hits.point;
}
// 如果还没到目的地
if ( m_nav.remainingDistance > 0.3f)
{
// 播放跑的动画
m_ani.SetBool("bRun", true);
}
else
{
// 到达目的地,切换到IDLE动画
m_ani.SetBool("bRun", false);
}
// Other Code ....................
然后,就悲剧了。。。。。。。
动画播放是正常的,移动也是正常的。。但是,他貌似永远到不了目的地了。。。因为他会一直在目的地周围转圈圈....
我把NavMeshAgent组件里的Stopping Distance设置为0.3,还是不行,但偶尔能停住了。。。
仔细观察发现,加入动画之后,他跑的路线是一条曲线,就会当你点的目标位置不是角色的正前方的时候,他需要转身,但转身的同时他已经在跑了,所以貌似它有个“最小转弯半径”......
难道动画的播放,能够影响到角色本身的position吗??如何解决这个问题呢??大神们给个思路吧。