Technical Details
Unity’s AI Navigation package does support runtime navmesh baking internally, but it exposes only a very low-level API. There is no editor tooling, no service layer, and no practical workflow for most teams.
The Runtime NavMesh Baker wraps these APIs in a structured, service-based system with intuitive inspectors, menu items, events, and samples — so designers, programmers, and technical artists can all configure runtime baking without writing custom infrastructure.
Core Features
Coordinator-First Workflow
- The BakerCoordinator component is the main entry point. 
- Owns a NavMeshBakeProfile (asset with all settings) and a Center Target (e.g., player or camera). 
- Automatically attaches and manages the underlying NavMeshBakerService. 
Service-Based Architecture
- NavMeshBakerService manages: - Dirty queueing and async bake scheduling 
- Continuous AABB baking, Grid Cell streaming, or One Shot baking 
- Agent expansion, seam link building, and concurrency control 
 
- Normally hidden from end users — accessed via the Coordinator. 
Dynamic Surfaces
- DynamicNavMeshSurface wraps Unity’s - NavMeshSurface.
- Registers automatically with the Coordinator (optional auto-register). 
- Provides inspector buttons to mark itself dirty, register/unregister, and ping its surface. 
Profiles
- NavMeshBakeProfile ScriptableObjects hold all bake parameters: - Bake mode (Continuous AABB, Grid Cells, One Shot) 
- Bounds sizes, cell dimensions, hysteresis, and rebake intervals 
- Agent types, default area, and area costs 
- Concurrency limits and seam-link options 
 
- Multiple profiles can be created and swapped quickly. 
Event Hooks
- BakerEvents exposes static events: - OnBakeStarted,- OnBakeCompleted,- OnBakeFailed
- OnCombinedBakeStarted,- OnCombinedBakeCompleted
- OnOneShotBakeStarted,- OnOneShotBakeCompleted(new in 1.4.0)
 
- Ideal for gameplay hooks (e.g., spawning AI when the navmesh is ready). 
Spawner Integration (new in 1.4.0)
- NavMesh Placement Policies on - SpawnEntry:- Require → spawn only once a valid NavMesh exists (deferred if needed) 
- Prefer → spawn immediately; agent enables once navmesh is available 
- Ignore → place regardless of navmesh state 
 
- Deferred Placement Queue ensures Require-policy spawns retry until successful. 
- Spawn Hints ( - EnemySpawnHintPointcomponents) let designers author preferred spawn anchors with per-hint rules.
Seamless AI Integration
- Works directly with Unity’s built-in - NavMeshAgent,- NavMeshQuery, and- NavMesh.SamplePosition.
- Agents automatically re-path when new bakes complete. 
Non-Destructive Workflow
- Combine static editor-baked navmeshes with runtime baking. 
- Useful for hybrid projects: static base levels + procedural/dynamic zones. 
System Architecture (At a Glance)
[ Unity NavMesh System (AI Navigation package) ]
        ▲
        │ (low-level runtime APIs: NavMeshData, UpdateNavMeshDataAsync)
        │
[ NavMeshBakerService ]
    - Centralized runtime baking logic
    - Manages DynamicNavMeshSurfaces
    - Async scheduling, dirty queues, perf metrics
    - Dispatches BakerEvents (per-surface, combined, one-shot)
        ▲
        │
[ BakerCoordinator (MonoBehaviour) ]
    - Primary entry point for users
    - Owns NavMeshBakeProfile + Center Target
    - Auto-registers child DynamicNavMeshSurfaces
    - Provides friendly methods: StartBaking, BakeAllNow, RunOneShotBake
        ▲
        │
[ Inspector & Editor Tooling ]
    - Quick Setup menu, asset creators, Bake Monitor window
    - Dynamic Surface inspector (mark dirty, register/unregister)
    - Spawn Hints inspector (new in 1.4.0)This layered design separates the runtime engine (Service) from the editor/user entry points (Coordinator, inspectors, menus), making it both production-ready and approachable.
Dependencies
- Unity 2022.3 LTS or newer 
- AI Navigation ( - com.unity.ai.navigation) – required core package
- Optional / samples only: - TextMesh Pro – used in sample UIs 
- Cinemachine – used in sample scenes for player camera control 
 
Last updated
