using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class MeshCombineModuleEditor : MonoBehaviour
{
[MenuItem("CombineMesh/Combine")]
public static void Combine()
{
var allFilters = new List<GameObject>(Selection.gameObjects).FindAll((go)=>go.GetComponent<MeshFilter>() != null);
var combines = new CombineInstance[allFilters.Count];
for (var i = 0; i < allFilters.Count; i++)
{
var flt = allFilters[i].GetComponent<MeshFilter>();
var combine = new CombineInstance();
combine.mesh = flt.sharedMesh;
combine.transform = flt.transform.localToWorldMatrix;
combines[i] = combine;
}
var newGo = new GameObject("combine");
var filter = newGo.AddComponent<MeshFilter>();
var renderer = newGo.AddComponent<MeshRenderer>();
var mesh = new Mesh();
mesh.CombineMeshes(combines);
filter.mesh = mesh;
}
}