C# SetDestination()有时在路径不完整的NavMeshAgent上不起作用

C# SetDestination()有时在路径不完整的NavMeshAgent上不起作用,c#,unity3d,agent,navmesh,pathing,C#,Unity3d,Agent,Navmesh,Pathing,在大多数情况下,当我在NavMeshAgent上调用SetDestination()以转到不存在完整路径的位置时,代理将尽可能靠近该位置,然后停止 当我试图在代理的Update()中连续运行SetDestination()到一个无法到达的位置时,有时代理根本就不移动。从在鼠标单击上设置目的地的不同脚本中调用单独的SetDestination()(到同一位置)后,代理将尽可能靠近该位置,这在Update()中调用SetDestination()时不会发生 为什么会发生这种情况?NavMeshAge

在大多数情况下,当我在NavMeshAgent上调用
SetDestination()
以转到不存在完整路径的位置时,代理将尽可能靠近该位置,然后停止

当我试图在代理的
Update()
中连续运行
SetDestination()
到一个无法到达的位置时,有时代理根本就不移动。从在鼠标单击上设置目的地的不同脚本中调用单独的
SetDestination()
(到同一位置)后,代理将尽可能靠近该位置,这在
Update()
中调用
SetDestination()
时不会发生


为什么会发生这种情况?NavMeshAgent和
SetDestination()
何时会发生不可预测的行为?

如果它无法到达此处,则不会创建路径-检查它是否有路径如果代理无法到达其确切位置,则通常会尽可能靠近目标。每帧调用set destination有点过多,它仍然可以从上一个One哇开始计算路径,当我每2秒调用一次SetDestination()时,代理总是移动到被阻止的位置,尽管每隔几次播放,代理在计算新路径时会暂时停止。我最初每帧调用SetDestination()的原因是因为游戏中的障碍物可能会改变位置,我希望代理在每帧使用最短路径。如果障碍物标记正确,路径应该自动更新