Expand NavMesh controls and debugging features

What would you like to request?

I would like to see more controls exposed for the 3D NavMesh system, particularly for positioning and debugging the generated NavMesh.

Some useful additions would be:

  • A configurable NavMesh/debug visualization Z offset

  • Actions to set, add to, and reset the offset

  • Better control over the NavMesh debug visualization, such as brightness/opacity or an unlit mode so it remains visible regardless of scene lighting

  • An easy way to enable/disable NavMesh visualization at runtime

  • More exposed NavMesh parameters where possible, rather than requiring workarounds when the generated mesh does not line up cleanly with the visible level geometry

Why are you requesting it?

While working with NavMesh navigation in a 3D game, I found that relatively small differences between the level geometry and the generated NavMesh can make both setup and debugging unnecessarily difficult.

For example, my floor and NavMesh could be correctly configured for navigation, but the debug NavMesh would overlap with or sit inside the floor and become difficult to see. Being able to apply a small Z offset to the displayed NavMesh made diagnosing paths, obstacles and connections significantly easier.

I ended up adding my own controls for:

  • setting a Z offset

  • incrementing/decrementing that offset

  • resetting it

  • making the visualization easier to see in dark scenes

These turned out to be useful constantly while setting up navigation rather than being a one-off workaround.

More NavMesh controls would also make it easier to diagnose problems involving:

  • stairs and ramps

  • different floor elevations

  • obstacle carving

  • narrow connections

  • disconnected areas

  • NavMesh geometry being slightly above/below the visible floor

  • determining whether a problem is with navigation itself or merely the visualization

The existing NavMesh system works, but exposing more of these controls would make it substantially easier to configure and debug in real 3D levels.

Example

In my project, the NavMesh was sometimes hidden inside the floor even though navigation itself was correct. Adding a small visualization offset immediately made the layout readable and allowed me to see where connections and obstacle cutouts were actually being generated.

I can provide screenshots/video of the modified NavMesh debugger and the additional controls if useful.