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 materialEach 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.