public MTRuntimeMesh(int meshid, int lod, string dataName) { MeshID = meshid; m_LODMeshs = new Mesh[lod]; //加载所有LOD mesh 存在数组里 MTFileUtils.LoadMesh(m_LODMeshs, dataName, meshid); }
public void EditorCreatePreview() { if (DataName == "") { Debug.LogError("data should have a name"); return; } try { Transform[] lodParent = new Transform[LOD.Length]; for (int i = 0; i < LOD.Length; ++i) { GameObject lodGo = new GameObject("LOD" + i); lodGo.transform.parent = transform; lodParent[i] = lodGo.transform; } MTQuadTreeHeader header = MTFileUtils.LoadQuadTreeHeader(DataName); Debug.LogError("RuntimeMats:" + header.RuntimeMats.Length); for (int i = 0; i < header.RuntimeMats.Length; i++) { Debug.LogError("name:" + header.RuntimeMats[i].name); } foreach (var m in header.Meshes.Values) { Mesh[] lods = new Mesh[LOD.Length]; MTFileUtils.LoadMesh(lods, DataName, m.MeshID); for (int i = 0; i < LOD.Length; ++i) { MeshFilter meshF; MeshRenderer meshR; GameObject meshGo = new GameObject("meshObj" + i); meshGo.transform.parent = lodParent[i]; meshF = meshGo.AddComponent <MeshFilter>(); meshR = meshGo.AddComponent <MeshRenderer>(); meshR.materials = header.RuntimeMats; meshF.sharedMesh = lods[i]; } } } catch { Debug.LogError("failed to load datas"); } }
public MTRuntimeMesh(int meshid, int lod, string dataName) { MeshID = meshid; mLOD = new Mesh[lod]; MTFileUtils.LoadMesh(mLOD, dataName, meshid); }