- Home /
Questions about NavMeshAgent.SamplePathPosition - statement from Unity desirable ^^
Hello, I wasn't sure if I should report a bug about this method (or about its documentation...), or if I'm just not using it in a correct way, so I thought I'd ask my questions here.
I want to use NavMeshAgent.SamplePathPosition to check if the agent currently stands on a particular navigation layer. The way I thought it works was that I pass the layer in question as passable mask ("A mask specifying which NavMesh layers can be passed when tracing the path.") and set max distance to a rather small value (like 0.1), because I'm only interested in knowing if the agent actually stands on the layer (or very close to it). Then I would check the return value of the method, assuming that it would return true if the layer was found within 0.1 units along the path, false otherwise ("Returns: True if terminated before reaching the position at maxDistance, false otherwise.").
However, this didn't work out. So I built a test scene, and checked what the method was actually doing. Turns out:
The passable mask defines layers that are IGNORED when sampling.
The NavMeshHit.distance is wrong. It always equals min(maxDistance, remainingPathLength) as long as the agent is on a layer INCLUDED in passable mask (even if the NavMeshHit.position is closer), and zero as soon as the agent is on a layer NOT in the passable mask.
As a consequence of point 2 (I guess?), the method only returns true while the agent is ON a layer that is NOT included in passable mask -> yay, that's what I need :)
Also, I tried passing -1 as passableMask - like in the example on the documentation - and expectedly (well, somehow...), the method always returns false. So the example might work, but it's not really the best example..
Comments? :)
Tobi
Your answer
Follow this Question
Related Questions
NavMeshAgent collision not working with player 2 Answers
NavMeshPath get path cost 0 Answers
Weird navigation issue 0 Answers
Rectangular Nav Mesh Agent? 1 Answer
Get path obstacles of navmesh 0 Answers