Some use cases for Off-Mesh Links can be detected automatically. The two most common ones are: Drop-Down and Jump-Across.
Drop-Down links are created to drop down from a platform.
Jump-Across links are created to jump across a crevice.
In order to find the jump locations automatically, the build process walks along the edges of the NavMesh and checks if the landing location of the jump is on NavMesh. If the jump trajectory is unobstructed an Off-Mesh link is created.
Let’s set up automatic Off-Mesh Link generation. If you’re not familiar with NavMesh baking, take a look at Building a NavMesh.
First, the objects in the Scene where the jump can start from needs to be marked. This is done my checking Generate Off-Mesh Links option in the Navigation Window under Objects tab.
The second step is to setup the drop-down and jump-across trajectories:
Drop-Down link generation is controlled by the Drop Height parameter. The parameter controls what is the highest drop that will be connected, setting the value to 0 will disable the generation.
The trajectory of the drop-down link is defined so that the horizontal travel (A) is: 2*agentRadius + 4*voxelSize. That is, the drop will land just beyond the edge of the platform. In addition the vertical travel (B) needs to be more than bake settings’ Step Height (otherwise we could just step down) and less than Drop Height. The adjustment by voxel size is done so that any round off errors during voxelization does not prevent the links being generated. You should set the Drop Height to a bit larger value than what you measure in your level, so that the links will connect properly.
Jump-Across link generation is controlled by the Jump Distance parameter. The parameter controls what is the furthest distance that will be connected. Setting the value to 0 will disable the generation.
The trajectory of the jump-across link is defined so that the horizontal travel (C) is more than 2*agentRadius and less than Jump Distance. In addition the landing location (D) must not be further than voxelSize from the level of the start location.
Now that objects are marked, and settings adjusted, it’s time to press Bake and you have will have automatically generated off-mesh links! When ever you change the scene and bake, the old links will be discarded and new links will be created based on the new scene.
Trouble Shooting
Things to keep in mind if Off-Mesh links are not generated at locations where you expect them to be:
Drop Height should a bit bigger than the actual distance measured in your level. This ensures that small deviations that happen during the NavMesh baking process will not prevent the link to be connected.
Jump Distance should be a bit longer than the actual distance measured in your level. The Jump Distance is measured from one location on a NavMesh to another location on the NavMesh, which means that you should add 2*agentRadius (plus a little) to make sure the crevices are crossed.
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thanks for helping to make the Unity documentation better!
Creating an Off-mesh Link
Building Height Mesh for Accurate Character Placement