【问题标题】:Controlling navmesh agent rotation resulting in odd behavior控制 navmesh 代理旋转导致奇怪的行为
【发布时间】:2019-10-22 14:09:29
【问题描述】:

我有一个 navmesh 代理,我对它更新旋转的方式不满意(总是略微关闭),所以我将其关闭并自己完成。

效果非常好,但是当我以 3-4 倍的速度运行游戏(管理游戏)时,他们有时会平躺 0.5-1 秒然后继续前进,我假设这是由这个脚本。

我很确定当他们静止不动或即将转身时。

void LateUpdate()
{
    if (agent.velocity.sqrMagnitude > Mathf.Epsilon)
    {
        transform.rotation = Quaternion.LookRotation(agent.velocity.normalized);
    }
}

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    显然它是在计算路径时发生的,所以添加它解决了它:

     void LateUpdate()
    {
        if (agent.hasPath)
        {
            if (agent.velocity.sqrMagnitude > Mathf.Epsilon)
            {
                transform.rotation = Quaternion.LookRotation(agent.velocity.normalized);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-27
      相关资源
      最近更新 更多