Navmesh Graph
Example scene which uses a navmesh graph.
Graph setup
The graph used in this scene is a NavMeshGraph. This is a completely manually modelled graph, which means that it does not use any automatic generation. Such graphs are more time consuming to create, but in return you get full control over how they look.
In most cases, an automatically generated RecastGraph is a better choice, but navmesh graphs can be useful in some cases. For example if you get a mesh from an external source, or if you want to do pathfinding on a spherical world, then a navmesh graph can be a good choice.
You can also create a manual navmesh which is just a quad (or some other simple shape), and then use the NavmeshCut component to cut holes in it to represent all obstacles. This leads to a pretty flexible system for games where you do a lot of building. However it can lead to a navmesh which does not have a great quality (lots of thin triangles). Using a recast graph, and graph updates that recalculate tiles from scratch, will usually lead to a higher quality navmesh, though it can be slower, depending on your world complexity and graph settings.