CombineMeshes 是个非常有用的方法,对于提高帧率非常有帮助,我们一起来学习下。
附代码:
public GameObject cube;
public GameObject cube1;
public GameObject cube2;
void Start ()
{
cube1.SetActive (false);
cube2.SetActive (false);
MeshFilter meshFilter = cube.GetComponent<MeshFilter> ();
MeshFilter meshFilter1 = cube1.GetComponent<MeshFilter> ();
MeshFilter meshFilter2 = cube2.GetComponent<MeshFilter> ();
Material[] mats = new Material[]{
cube.GetComponent<MeshRenderer> ().sharedMaterial,
cube1.GetComponent<MeshRenderer> ().sharedMaterial,
cube2.GetComponent<MeshRenderer> ().sharedMaterial,
};
CombineInstance[] combines = new CombineInstance[3];
combines [0].mesh = meshFilter.sharedMesh;
combines [0].transform = meshFilter.transform.localToWorldMatrix;
combines [1].mesh = meshFilter1.sharedMesh;
combines [1].transform = meshFilter1.transform.localToWorldMatrix;
combines [2].mesh = meshFilter2.sharedMesh;
combines [2].transform = meshFilter2.transform.localToWorldMatrix;
Mesh combineMesh = new Mesh ();
combineMesh.CombineMeshes (combines,false);
cube.GetComponent<MeshFilter> ().mesh = combineMesh;
cube.GetComponent<MeshRenderer> ().sharedMaterials = mats;
}