文章出处:http://jxwgame.blog.51cto.com
参考代码:
using UnityEngine;
using System.Collections;
public class Combine : MonoBehaviour
{
void Start()
{
//MeshFilter 网格过滤器,使用这个作为一个程序的网格接口
MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>();
//CombineInstance 合并实例,用来描绘网格合并的结构
CombineInstance[] combine = new CombineInstance[meshFilters.Length];
for (int i = 0; i < meshFilters.Length; i++)
{
//.mesh 合并网格方法
combine[i].mesh = meshFilters[i].sharedMesh;//返回网格过滤器的共享的网格。
//.transform 合并之前,网格变换的矩阵。
combine[i].transform = meshFilters[i].transform.localToWorldMatrix;//返回对象的世界坐标位置
meshFilters[i].gameObject.active = false;
}
//新建网格
transform.GetComponent<MeshFilter>().mesh = new Mesh();
//组合多个网格到同一个网格
transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine);
transform.gameObject.active = true;
}
}