You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中启用Animator后NavMeshAgent无法正常工作问题求助

问题解决步骤

核心原因:Animator根运动与NavMeshAgent冲突

这是新手使用NavMesh+Animator时最常见的问题——动画系统的根运动接管了NPC的位移,导致NavMeshAgent无法控制移动。


  1. 关闭Animator的根运动

    • 选中你的NPC对象,找到Inspector里的Animator组件,取消勾选Apply Root Motion选项。
    • 打开行走动画剪辑,在Inspector的Root Motion区域选择Bake Into Pose,确保动画的位移不会影响NPC的实际位置。
  2. 修正Animator过渡设置

    • 打开你的Animator Controller,确认IsWalking布尔参数已添加到参数列表中。
    • 检查所有过渡条件:
      • 待机→行走的过渡:条件设为IsWalking == true
      • 行走→待机的过渡:条件设为IsWalking == false
      • 关闭所有过渡的Has Exit Time选项,避免动画播放完才切换状态,导致响应延迟。
  3. 脚本与组件赋值检查

    • 在Inspector面板中,确认脚本的Animator字段已经拖拽了NPC的Animator组件,不存在空引用。
    • 可以在Update方法中添加调试代码,验证参数是否正确设置:
      Debug.Log("当前速度: " + navMeshAgent.velocity.magnitude + " | IsWalking状态: " + Animator.GetBool(IsWalking));
      
      运行游戏后查看控制台输出,确认速度值和参数状态是否符合预期。
  4. 解决NPC浮起问题

    • 选中NPC的NavMeshAgent组件,调整Base Offset参数,让NPC的位置贴合地面。

内容的提问来源于stack exchange,提问作者hduece

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:50:08