Unity将多个Submesh转为一个mesh

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、将代码添加到空物体上
结构如下:
在这里插入图片描述
之后运行即可。


版权声明:本文为weixin_42397471原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。