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

Bake Mode
Best For
How It Works
Trade-offs

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