问题描述
我有一个项目,正在使用NavMesh Agent和Obstacles作为游戏的核心机制。我已经将NavMeshSurface烘焙到地面,以便特工可以找到到达终点的方式。玩家将障碍物放置在特工的前面,以阻止其前进。如果障碍被完全阻止并且没有可用的路径到达终点,我会努力使障碍对障碍造成损害。 注意:(通过完全封锁,我的意思是他们只是站在一个地方,什么也不做。如果发生这种情况,我希望特工开始攻击障碍物,以便以自己的方式到达终点) 任何有关如何检查是否有可用路径的建议都深表感谢!预先谢谢你
解决方法
欢迎来到Svetoslav社区。 p>
在 NavMeshAgent上进行快速搜索以检查端点是否可达 ,即可立即得到答案(https://answers.unity.com/questions/1254520/how-to-check-if-agent-destination-can-be-reached.html (由Arcana96回答)
有一个称为CalculatePath的方法,该方法可让您在移动代理之前检查某个位置是否可达。这里是文档: https://docs.unity3d.com/ScriptReference/NavMeshAgent.CalculatePath.html
使用CalculatePath
方法将返回NavMeshPath
对象。它可用于检查端点是否可达(请参阅文档)。获得肯定的结果后,您可以将该路径设置为NavMeshAgent
的{{1}}属性。