Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 控制navmesh代理旋转以导致异常行为_C#_Unity3d - Fatal编程技术网

C# 控制navmesh代理旋转以导致异常行为

C# 控制navmesh代理旋转以导致异常行为,c#,unity3d,C#,Unity3d,我有一个navmesh代理,我不满意它如何更新它的旋转(总是稍微关闭),所以我关闭它,自己做 它工作得非常好,但是当我以3-4倍的速度运行游戏(管理游戏)时,他们有时会平躺0,5-1秒,然后继续运行,我假设这是由这个脚本引起的 我很确定这是他们站着不动或正要转身的时候 void LateUpdate() { if (agent.velocity.sqrMagnitude > Mathf.Epsilon) { transform.rotation = Quat

我有一个navmesh代理,我不满意它如何更新它的旋转(总是稍微关闭),所以我关闭它,自己做

它工作得非常好,但是当我以3-4倍的速度运行游戏(管理游戏)时,他们有时会平躺0,5-1秒,然后继续运行,我假设这是由这个脚本引起的

我很确定这是他们站着不动或正要转身的时候

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

显然,这是在计算路径时发生的,因此添加此项解决了这一问题:

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

显然,这是在计算路径时发生的,因此添加此项解决了这一问题:

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