Hell, it doesn’t even compile.
I tried a fix:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(MeshFilter))]
[RequireComponent(typeof(MeshRenderer))]
public class CombineMeshes : MonoBehaviour {
void Start() {
MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>();
CombineInstance[] combine = new CombineInstance[meshFilters.Length];
int i = 0;
while (i < meshFilters.Length) {
combine[i].mesh = meshFilters[i].sharedMesh;
combine[i].transform = meshFilters[i].transform.localToWorldMatrix;
meshFilters[i].gameObject.active = false;
i++;
}
transform.GetComponent<MeshFilter>().mesh = new Mesh();
transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine,true);
transform.gameObject.active = true;
}
}
But that results in:
count <= std::numeric_limits<UInt16>::max()
UnityEngine.Mesh:CombineMeshes(CombineInstance[])
CombineMeshes:Start() (at Assets/Scripts/CombineMeshes.cs:20)
Also some very weird issues.