unity3d Unity -导航端的Navmesh事件

vi4fp9gy  于 2023-04-12  发布在  其他
关注(0)|答案(2)|浏览(171)

有没有办法在Navmesh导航端升起一个标志,或者在导航结束时使用回调?
我想运行一个函数,当我的对象到达所需的位置,我可以检查每一个帧更新,如果导航已经完成,但我想要一个更优雅和有效的解决方案。
谢谢。

tpxzln5u

tpxzln5u1#

这取决于你所说的“结束”是什么意思,如果你想知道一个路径何时不再可用于NavAgent,你可以使用pathStatus,例如你可以这样写:

if(myNavAgent.pathStatus != NavMeshPathStatus.PathComplete) {
  // Do stuff
}

如果你到达一个位置,比如一个“航点”,你可以使用myNavAgent.remainingDistance,然后检查它是否小于某个值。
以下是Unity NavAgent scriptingAPI文档链接:https://docs.unity3d.com/ScriptReference/AI.NavMeshAgent.html
如果这不起作用,让我知道!

fnvucqvd

fnvucqvd2#

我也想过同样的问题,我找不到回调,但是我设法用触发器解决了。例如,如果我的代理去了点A,我把触发器放在那个位置,当我的代理碰到它时,我停止了代理。

相关问题