When setting a destination that is blocked, check when NPC has reached end of path

#1

When I set a destination that is blocked, the NPC will move as close as it can to that destination, then stop when it gets to the block. Great!
Now I want to run some logic once an NPC reaches that point. Is it possible?

I know you can check if you can reach point B from point A, but that is done before setting the destination, which is not what I want.

Thank you for all your help

#2

Hi

This is a surprisingly tricky thing to define. For example, if the destination is 1 meter above the surface of the navmesh, is that point considered reached if the agent moves to the ground below it?

The easiest way I have found is to do a check for if the agent has reached the end of its path and if it is reasonably close to the point it wants to reach.

``````if (ai.reachedEndOfPath && Vector3.Distance(ai.position, ai.destination) < ...)
``````

Depending on your game you may want to only check the X and Z coordinates of the distance to the destination.

 Upon reading your question again, I realize that you might just have been looking for ai.reachedEndOfPath.

#3

Hi,

``````Vector3.Distance(ai.position, ai.destination)
``````

I can figure out a neat solution

Thanks!