对问题的描述
我正在与计算无效路径的NavMesh代理进行斗争,而显然是没有任何理由的。当已经使用初始有效路径移动时,就会不时发生问题。

在上面的图像中,目标是左上角的圆锥体。(不要介意NavMeshAgent的方向箭头,我试图用手移动代理,以便“解锁”他)
测试溶液
CalculatePath或SetDestination计算一个新的。有时起作用,有时不行。
受保护的虚拟虚空更新(){ if ( !Running !agent.enabled欧元!agent.isOnNavMesh )返回;if ( !agent.pathPending & agent.path.status == NavMeshPathStatus.PathInvalid & Time.frameCount %2 == 0){ NavMeshPath path =新NavMeshPath();agent.CalculatePath( path ),path );agent.SetPath( Path );}}注意:当另一个代理推送我的第一个代理时,后者似乎醒来并找到了它的路径。
发布于 2017-01-23 11:58:56
我之前也有过同样的问题,我的经纪人一直在从主干道上不断恶化,就好像它在移动中获得了新的信息,
然后我检查了一下,知道它在移动时更新了路径,总是检查新的最短距离,就像您说的禁用了自动路径属性一样,我也做了同样的工作,但没有任何帮助。
然后我想出了一个想法,得到我的代理人最初开始在列表中移动的点,并画出我自己的路径来移动我的代理,你可以从这中得到点,然后你必须顺利地将你的玩家\ agent翻译到这些点上,因为这将是最短的路径。
但最后但并非最不重要的是,避障是很难克服的。
如果你发现这个帮助很充分,给它一个镜头,然后告诉它是如何进行的。这正是我在我的案例中所做的,我认为分享它将是有帮助的。
祝你好运
发布于 2017-11-20 07:51:33
最近,我遇到了一个非常类似的问题,我的NavMesh代理会被卡住,当目的地离NavMesh的边缘太近时,通常会开始旋转。对我来说,修复它的是把它从边缘移开,距离特工半径的一半,所以当他到达目的地时,他会站在最上面。
如果这对您没有帮助-您可以尝试warping代理:
https://forum.unity.com/threads/agents-get-stuck-on-navmeshlink.503527/ https://forum.unity.com/threads/agent-getting-stuck-in-another-agent-when-walking-in-corners-what-is-the-right-solution.501824/ https://forum.unity.com/threads/strange-navmeshsurface-behavior.501453/ https://forum.unity.com/threads/failed-to-create-agent-because-it-is-not-close-enough-to-the-navmesh.500553/ https://forum.unity.com/threads/navmesh-link-does-not-connect-properly-in-runtime.473223/
发布于 2018-03-22 11:36:00
如果可以,只需避免使用NavMeshAgent系统即可。我们结束了像自动测试水平通过能力之间的所有兴趣点之间的整个水平的技巧。我们做了一些启发,比如向前跳一小步,以避免问题。由于所选择的方法,统一NavMesh系统已经完全崩溃。它们使用float32对网格执行非鲁棒布尔运算,这导致了退化的三角形和大量其他问题。不要用这个,试着找出其他行之有效的解决方案。
https://stackoverflow.com/questions/41648767
复制相似问题