微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity Navmesh代理被阻止

如何解决Unity Navmesh代理被阻止

我有一个项目,正在使用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}}属性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。