예제 #1
0
    public MTRuntimeMesh(int meshid, int lod, string dataName)
    {
        MeshID     = meshid;
        m_LODMeshs = new Mesh[lod];

        //加载所有LOD mesh 存在数组里
        MTFileUtils.LoadMesh(m_LODMeshs, dataName, meshid);
    }
예제 #2
0
 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");
     }
 }
예제 #3
0
 public MTRuntimeMesh(int meshid, int lod, string dataName)
 {
     MeshID = meshid;
     mLOD   = new Mesh[lod];
     MTFileUtils.LoadMesh(mLOD, dataName, meshid);
 }