Which Bake Mode should I Choose?
+--------------------------------------------------+
|             Continuous AABB (Bubble)             |
+--------------------------------------------------+
 Player / Camera (Center Target) moves
 ──────────────────────────────────────────────
 [Dynamic Surface A]   [Dynamic Surface B]
  (terrain mesh)        (building mesh)
 -> Coordinator tracks target position
 -> Service collects geometry from all
    registered Dynamic Surfaces inside the
    moving AABB
 -> Only those surfaces overlapping the bubble
    are baked
 Result: Small "bubble" navmesh moves around
         with the player.+--------------------------------------------------+
|                Grid Cells (Streaming)            |
+--------------------------------------------------+
 World divided into fixed cells (e.g. 32x32)
 ──────────────────────────────────────────────
 [Dynamic Surface X]   [Dynamic Surface Y]
  (chunk prefab)        (spawned tile)
 -> Coordinator determines which cells are
    inside the active window (e.g. 3x3)
 -> Service collects geometry only from
    Dynamic Surfaces overlapping those cells
 -> Surfaces auto-register/unregister as tiles
    are spawned/despawned
 Result: Navmesh streams in/out around player.+--------------------------------------------------+
|               One Shot (Full Scene)              |
+--------------------------------------------------+
 Entire level baked once at startup or on-demand
 ──────────────────────────────────────────────
 [Dynamic Surface 1]   [Dynamic Surface 2]   [3..N]
 -> Coordinator triggers a single bake across
    all registered Dynamic Surfaces
 -> Surfaces remain registered but no further
    automatic bakes occur
 -> Manual MarkDirty() still possible
 Result: One large navmesh covering the whole map.Key Takeaways
- Continuous AABB → Only surfaces intersecting the moving bounding box contribute. 
- Grid Cells → Only surfaces intersecting active cells contribute; good for procgen/streaming. 
- One Shot → All surfaces contribute once at startup; no continuous updates. 
When to Use Which Mode
Continuous AABB
Small/medium handcrafted maps where you just need navigation near the player (e.g. dungeons, arenas, compact open worlds).
Keeps a moving bounding box (“bubble”) centered on a target (player/camera). Only surfaces inside the box are baked.
Simple & efficient, but navmesh coverage is limited to the bubble. AI outside must wait until in range.
Grid Cells
Large, procedural, or streaming environments (e.g. tile-based procgen, open terrain with chunks).
Divides the world into cells and keeps a configurable window (e.g. 3×3 cells) around the target baked.
Great for infinite/procedural worlds. More setup complexity. May need Seam Links if tiles don’t overlap.
One Shot
Large handcrafted maps where you want one complete navmesh built at runtime (e.g. static open-world levels).
Bakes all registered surfaces once at startup or on-demand. No automatic rebakes unless manually triggered.
Simple setup, guaranteed full coverage. Higher upfront bake cost and memory usage.
Quick Tips
- Start with Continuous AABB if you’re prototyping — minimal setup, immediate results. 
- Switch to Grid Cells if your world is larger than a single navmesh bubble or streams dynamically. 
- Use One Shot if your map is handcrafted, static, and too large to pre-bake in editor. 
Last updated
