# Preparing a scene for Runtime Navmesh Baking

### Common “Source mesh XXX does not allow read access” errors

If you try to use the NavMesh Baker without adjusting your scene, you may encounter errors like:

> *“Source mesh XXX does not allow read access.”*

#### Causes

* **NavMeshSurface set to Render Meshes**\
  By default, the Baker forces surfaces to use **Physics Colliders**, which is the safest option. If you switch a `NavMeshSurface` to **Render Meshes**, Unity needs read access to the underlying meshes. Many meshes (e.g., imported models) are not readable by default.
* **Mesh Colliders**\
  If your scene uses MeshColliders, Unity still requires the mesh data to be marked as **read/write enabled** in the import settings.
* **Static Batching**\
  Unity’s “Batching Static” option combines meshes into optimized, non-readable meshes at runtime. These cannot be accessed by the navmesh system and will result in bake failures.

***

### Additional Considerations in 1.3.0

* **DynamicNavMeshSurface Defaults**\
  Newly created DynamicNavMeshSurface components are configured for **Physics Colliders** collection by default. This avoids most read-access errors automatically.
* **Seam Links** (new in 1.3.0)\
  If your profile has **Seam Links Enabled**, the baker will attempt to connect navmesh edges across adjacent tiles. This requires clean collider geometry and consistent agent radius settings. If your agents cannot cross tile boundaries, check your profile’s **seam link settings** and surface bounds.
* **Combined Window Mode**\
  The new **Combined** bake mode (enabled via `NavMeshBakeProfile.combineTiles`) collects sources globally instead of per-surface. In this mode, having **read/write disabled meshes** in the scene is more likely to cause errors, since the collector scans large world bounds. Ensure meshes are readable or use colliders.
* **Procedural Meshes / Runtime Geometry**\
  If you are generating meshes at runtime (e.g., voxel terrain, procedural tiles), make sure they have colliders or readable mesh data. Otherwise, Unity’s collector cannot access them.

***

### Solutions

* Prefer **Physics Colliders** collection mode (default).
* If you must use **Render Meshes**, enable **Read/Write** on the mesh assets (via the model importer).
* Avoid using **Static Batching** on geometry that should contribute to runtime navmeshes.
* For procedural meshes, either:
  * Add colliders, or
  * Mark the mesh data as readable at creation.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://megacrush.gitbook.io/megacrush-unity-assets/runtime-navmesh-baker/runtime-navmesh-baker-user-manual/frequently-asked-questions/preparing-a-scene-for-runtime-navmesh-baking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
