We just updated to 3.7.2 and now it looks like PointOnNavmesh returns false even if we are clearly inside the navmesh.
It happens often with long tile edges and it depends on the way you’re going.
We’re using recast graph with tile of size 128.
Here is a screenshot:
As you can see the unit is trying to move from left to right but is blocked at the edge of the triangle. Function PointOnNavMesh return false.
Observation: If i move to the “top” of the triangle I’m trying to enter (the one were the top of the ugly red arrow is) the unit is able to cross the triangle correctly.
Ouch. Seems I have introduced a bug when I changed the way the lookup structure for nearest nodes works.
I will try to fix it as soon as possible (and add more unit tests).
Thanks for reporting the bug.
To fix it temporarily I think you should be able to replace the RecastGenerator.cs script in 3.7.2 with the one from 3.7 and it should work fine.
I used your example scene for recast graph in a brand new project (completely empty with only your plugin in it)
I take the liberty of scaling some elements and add some colliders and navCutter along with a tile handler.
I also added a ClampToNavMesh script on the bot that use the same function we use in our game.
When the bot moves to the yellow points it crosses a bunch of super slim triangles and you should notice a small “jump” at that moment. Sometimes the bot is even teleported close to a column.