导出模型预览图
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());
GetComponent<MeshFilter>().mesh = mesh;
GetComponent<MeshRenderer>().materials = materials.ToArray();
}
}