Unity的NavMesh Agent在navmesh边缘出现故障

时间:2017-11-09 10:32:14

标签: unity3d unity5 path-finding navmesh

我最近开始玩AI和Unity内置寻路器。到目前为止,我还没有遇到任何更大的麻烦,但是昨天我进口了一个山路模型,从它的基地走到最顶端。

我的AI游戏对象包括Rigidbody(设置为运动学),Capsule Collider和NavMesh Agent。 我生成了NavMesh并将最大斜率设置为40度,当AI跟随我的玩家或沿指定路径(航路点)行走时,AI导航很好但是当我尝试在AI半径的NavMesh中选择一个随机位置时几秒后出现故障并开始摇晃,通常是在目的地靠近NavMesh的边缘时。 我已经捕获了两个视频,我从昨天开始努力解决这个问题。

我已经尝试完全移除Rigidbody,改变避障设置,降低最大坡度但到目前为止没有任何效果。

这就是它的样子:

Video 1

Video 2

我用来获取随机位置的代码:

Pastebin

    case v, more := <-ch:
        if !more {
            return
        }
        fmt.Printf("v is %v\n", v)

我真的很感激任何帮助解决这个问题。

1 个答案:

答案 0 :(得分:0)

原来private static event EventHandler<SomeEventArgs> eventTriggered public static event EventHandler<SomeEventArgs> EventTriggered { add { eventTriggered-= value; eventTriggered+= value; //Add code here to keep track somewhere of event } remove { eventTriggered-= value; //Add code here to keep track somewhere of event } } 并未将NavMesh Agent半径考虑在内,因此代理无法访问它。

我设法通过将hit.position移动一半代理的半径远离边缘来设法修复它。

NavMesh.SamplePosition