Unity将多个Submesh转为一个mesh
unity中的submesh的详细信息还请查阅unity官方手册
本次仅贴出如何将一个模型的多个submesh转为一个mesh
转变为
下面展示 submesh合并代码
。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MuZuo_CombineSubMeshes_WSY : MonoBehaviour
{
private void Start()
{
HeBing();
}
void HeBing()
{
MeshFilter meshFilter = GetComponentInChildren<MeshFilter>();
CombineInstance[] combines = new CombineInstance[meshFilter.mesh.subMeshCount];
for (int i = 0; i < meshFilter.mesh.subMeshCount; i++)
{
combines[i].mesh= meshFilter.sharedMesh;
combines[i].transform = meshFilter.transform.localToWorldMatrix;
combines[i].subMeshIndex = i;
}
gameObject.AddComponent<MeshFilter>().mesh = new Mesh();
transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combines, true);
meshFilter.mesh = transform.GetComponent<MeshFilter>().mesh;
}
}
操作步骤
1、首先 场景中创建一个空物体
2、将具有子网格的模型作为空物体的子物体
3、将代码添加到空物体上
结构如下:
之后运行即可。