Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

我真服了我自己.....
sdhexu发起了话题2017-06-14
4
回复
1952
浏览

大神。。。又遇到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吗??如何解决这个问题呢??大神们给个思路吧。

所有回复
  • siki • 2017-06-14

    动画可以影响position的

    animator上有一个apply root motion,你取消勾选试下

    • sdhexu • 2017-06-14

      大神,较色的动画身上,有个 Root Transform Position X / XZ, 分别有个Bake Into Pose,点了勾和步点勾没有啥区别....还有个Motion下面,有个Root Motion Node,本来就是选的None,还是不行。
      没找到您说的Apply root motion 啊。。。

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录或注册!
  • siki • 2017-06-14

    • sdhexu • 2017-06-15

      哇....谢谢大神!!
      这个勾选上之后,的确是好了!!!只是,模型的动作和他跑路的速度有点不太匹配,我只能慢慢调整了。。还有就是,NavMeshAgent的转弯实在太笨了,他总是会转一个很大的湾,我把那个转向速度调整成360也无济于事,调整成36000和360没啥区别。。。

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!