- Home /
Agent won't traverse auto generated offmeshlinks
So i have this scene set up in order to test NavMesh features:
The capsule has a NavMeshAgent component. A empty GameObject is set as the destination at the top of the stairs. The agent travels to the bottom of the stairs and then stops. Regardless of how i set the agent's attributes it won't traverse the off mesh links.
Any ideas?
Answer by Yarden-Raveh · Dec 03, 2013 at 09:01 PM
I have tried several things but i am still stumped. When i am going through the documentation it looks like it is assumed to just work. I get this nagging feeling i forgot something but i have no idea what.
I have found a solution and i feel stupid after discovering it. Auto generated off mesh links are not bi directional in regards to height. Creating manual ones solved the problem. In my defence it was not obviously stated in the manual. Atleast it was not obvious to me.
Answer by Ash-Blue · Apr 07, 2016 at 02:55 AM
NavMesh baking will only generate fall links automatically. If you want a link to jump up you'll have to generate it manually. I know it's slightly annoying that Unity doesn't provide this out of the box, but jump physics can vary widely between games. I would love to see built-in support for optional jump links in a future Unity NavMesh version. That said, you might create your own jump links through a process like this.
Get all BoxColliders corresponding to a "Platform" layer (or whatever you want to name in)
Raycast to the ground and all visible ledges from an offset corner to try and detect a clear jump
On success generate an OffMeshLink component on a GameObject and set the proper start and end points
Hopefully that helps and best of luck ^_^
Your answer
Follow this Question
Related Questions
NavMeshAgent falling through on the floor below after Carve. 1 Answer
Instantiating a prefab with navmeshagent 1 Answer
OffMesh Link and NavMesh Obstacle 1 Answer
How to queue NavMeshAgents on entering a tile in Unity (based on path distance to tile)? 0 Answers
"Nav Mesh Agent" messes up simple prototype player-gameobject. What's up with that? 0 Answers