导出模型预览图
EditorUtility.SetDirty(prefab);
Texture2D image = AssetPreview.GetAssetPreview(prefab);
System.IO.File.WriteAllBytes(Application.dataPath + "image.png", image.EncodeToPNG());
合并Mesh网格
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HZ2 : MonoBehaviour
{
public List<GameObject> gams;
// Start is called before the first frame update
void Start()
{
Mesh mesh = new Mesh();
List<CombineInstance> coms = new List<CombineInstance>();
List<Material> materials = new List<Material>();
for (int i = 0; i < gams.Count; i++)
{
materials.Add(gams[i].GetComponent<MeshRenderer>().material);
CombineInstance instance = new CombineInstance();
instance.mesh = gams[i].GetComponent<MeshFilter>().mesh;
instance.transform = gams[i].transform.localToWorldMatrix;
coms.Add(instance);
}
mesh.CombineMeshes(coms.ToArray(),false,true);
//合成后可以使各部分的显示跟合并前一致
GetComponent<MeshFilter>().mesh = mesh;
GetComponent<MeshRenderer>().materials = materials.ToArray();
}
}
效果: