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,OnBakeFailedOnCombinedBakeStarted,OnCombinedBakeCompletedOnOneShotBakeStarted,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, andNavMesh.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 packageOptional / samples only:
TextMesh Pro – used in sample UIs
Cinemachine – used in sample scenes for player camera control
Last updated