Creating an Off-mesh Link
Off-Mesh Links are used to create paths crossing outside the walkable navigation mesh surface. For example, jumping over a ditch or a fence, or opening a door before walking through it, can be all described as Off-mesh links.
We’re going to add an Off-Mesh Link component to describe a jump from the upper platform to the ground.
- First create two cylinders: Game Object > 3D Object > cylinder.
- You can scale the cylinders to (0.1, 0.5, 0.1) to make it easier to work with them.
- Move the first cylinder at the edge of the top platform, close to the NavMesh surface.
- Place the second cylinder on the ground, close to the NavMesh, at the location where the link should land.
- Select the first cylinder cylinder and add an Off-Mesh Link component to it. Choose Add Component from the inspector and choose Navigation > OffMesh Link.
- Assign the first cylinder in the Start field and the second cylinder in the End field.
Now you have a functioning Off-Mesh Link set up! If the path via the off-mesh link is shorter than via walking along the Navmesh, the off-mesh link will be used.
You can use any game object in the Scene to hold the Off-Mesh link component, for example a fence prefab could contain the off-mesh link component. Similarly you can use any game object with a Transform as the start and end marker.
The NavMesh bake process can detect and create common jump-across and drop-down links automatically. Take a look at the Building Off-Mesh Links Automatically for more details.
Details
If the agent does not traverse an OffMesh link make sure that both end points are connected correctly. A properly connected end point should show a circle around the access point.
Another common cause is that the Navmesh Agent’s Area Mask does not have the OffMesh Link’s area included.
Additional resources
- Navigation HowTos - common use cases for NavMesh Agent, with source code.
- OffMesh Link component reference – full description of all the Off-Mesh Link properties.
- Off-Mesh Link scripting reference - full description of the Off-Mesh Link scripting API.