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 modeled 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.