Quick answer: Unity CombineMeshes flattening multi-material objects to one material? Combine into submeshes per material (mergeSubMeshes = false) — preserves the material list.

Combining a batch of props collapses them all to the first material. The combine call set mergeSubMeshes = true, which forces a single submesh.

Combine Into Submeshes

combinedMesh.CombineMeshes(combine, false);
// false = keep submeshes per material

Each input mesh becomes a submesh; the output renderer gets a materials array of the same order.

Material Array Order

Build the materials array in the same order as your combine list. Mismatched indices = wrong textures.

Identical Materials Get Merged

If two inputs share the same material instance, you can pre-collapse those to one submesh by grouping. Reduces draw calls beyond what submesh-only combine gives.

Verifying

The combined mesh renders with all original materials present; one renderer, one mesh, but the right look.

“Set mergeSubMeshes = false to keep multiple materials in a combined mesh.”

For static props, the SRP Batcher is often a better choice than Combine — same draw-call wins, no asset-time work.