Quick answer: Unity NavMeshSurface from the AI Navigation package failing to bake? Object must have Navigation Static in inspector or NavMeshSurface’s Collect Objects = All, and the agent type must exist.
Pressing Bake on a NavMeshSurface produces no mesh. Either no geometry is selected for baking or the agent type is invalid.
Collect Objects Mode
NavMeshSurface offers All / Volume / Children. All uses everything Navigation Static. Children uses descendants regardless of Static flag — useful for streamed levels.
Mark Static
For All mode, each contributing GameObject needs Navigation Static = true in the Static dropdown. Mesh renderer and collider must also be enabled.
Agent Type
The Surface’s Agent Type must reference an agent defined in Navigation Window → Agents. A stale ID after copy-paste produces silent bake failure.
Generated Off-Mesh Links
Add NavMeshLink for jumps. NavMeshSurface bake doesn’t infer these; they’re hand-placed at build time or generated by a separate pass.
Verifying
Bake produces a mesh visible in scene view (with Show NavMesh on). Agents path on it without warnings.
“NavMeshSurface needs static (or Children) geometry, a valid agent type, and a bake.”
Wire NavMeshSurface.BuildNavMesh() into a custom editor menu — baking ten surfaces by hand at end of level is tedious and easy to forget.