有没有办法在Navmesh导航端升起一个标志,或者在导航结束时使用回调?我想运行一个函数,当我的对象到达所需的位置,我可以检查每一个帧更新,如果导航已经完成,但我想要一个更优雅和有效的解决方案。谢谢。
tpxzln5u1#
这取决于你所说的“结束”是什么意思,如果你想知道一个路径何时不再可用于NavAgent,你可以使用pathStatus,例如你可以这样写:
pathStatus
if(myNavAgent.pathStatus != NavMeshPathStatus.PathComplete) { // Do stuff }
如果你到达一个位置,比如一个“航点”,你可以使用myNavAgent.remainingDistance,然后检查它是否小于某个值。以下是Unity NavAgent scriptingAPI文档链接:https://docs.unity3d.com/ScriptReference/AI.NavMeshAgent.html如果这不起作用,让我知道!
myNavAgent.remainingDistance
fnvucqvd2#
我也想过同样的问题,我找不到回调,但是我设法用触发器解决了。例如,如果我的代理去了点A,我把触发器放在那个位置,当我的代理碰到它时,我停止了代理。
2条答案
按热度按时间tpxzln5u1#
这取决于你所说的“结束”是什么意思,如果你想知道一个路径何时不再可用于NavAgent,你可以使用
pathStatus
,例如你可以这样写:如果你到达一个位置,比如一个“航点”,你可以使用
myNavAgent.remainingDistance
,然后检查它是否小于某个值。以下是Unity NavAgent scriptingAPI文档链接:https://docs.unity3d.com/ScriptReference/AI.NavMeshAgent.html
如果这不起作用,让我知道!
fnvucqvd2#
我也想过同样的问题,我找不到回调,但是我设法用触发器解决了。例如,如果我的代理去了点A,我把触发器放在那个位置,当我的代理碰到它时,我停止了代理。