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

Unity NavMeshAgent指向目标但侧躺问题求助

修复Enemy NPC侧躺跟随问题

问题核心

Enemy跟随逻辑正常但出现侧躺,本质是模型轴对齐与NavMeshAgent自动旋转的冲突,或是模型自身初始旋转/轴方向不符合Unity导航系统的默认规范。

可行修复方案


1. 修正模型导入轴方向

Unity的NavMeshAgent默认以Z轴为前进方向,若Enemy模型自身前向轴不是Z轴,就会导致导航旋转异常:

  • 选中Enemy模型文件,在Inspector面板的Model标签下找到Transform区域:
    • 调整Rotation参数(比如将X轴设为90或-90),预览Scene视图中的模型姿态,直到模型站立时的前向对应Z轴。
    • 勾选Fix Up Axis并选择Y轴,强制模型向上轴与Unity世界Y轴对齐。

2. 禁用NavMeshAgent自动旋转,手动控制朝向

如果不想修改模型轴,可以关闭NavMeshAgent的自动旋转,自行控制Enemy的朝向逻辑:

public Transform target; // 玩家Transform
public NavMeshAgent agent; // Enemy的NavMeshAgent

void Update()
{
    agent.SetDestination(target.position);
    
    // 仅当Enemy移动时调整朝向
    if (agent.velocity.magnitude > 0.1f)
    {
        // 计算水平方向的目标向量(忽略Y轴,避免不必要的抬头/低头)
        Vector3 targetDir = target.position - transform.position;
        targetDir.y = 0;
        
        // 平滑旋转朝向目标
        transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(targetDir), Time.deltaTime * 5f);
    }
}

3. 排查父物体与组件偏移

  • 确认Enemy模型的父物体(若存在)Rotation值为(0,0,0),避免继承错误的旋转参数。
  • 检查NavMeshAgent组件的Base Offset参数,不要设置过大的Y轴偏移,防止模型显示位置异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:27:11