Ejemplo n.º 1
0
    private void FixObjects(SkinData[] data)
    {
        for (int i = 0; i < data.Length; ++i)
        {
            GameObject   go        = data[i].m_go;
            MeshRenderer mr        = go.GetComponent <MeshRenderer>();
            Material[]   materials = mr.sharedMaterials;
            MeshFilter   mf        = go.GetComponent <MeshFilter>();
            Mesh         m         = mf.sharedMesh;
            Vector4      st        = mr.lightmapScaleOffset;
            int          ind       = mr.lightmapIndex;
            GameObject.DestroyImmediate(mf);
            GameObject.DestroyImmediate(mr);
            go.isStatic = false;

            SkinnedMeshRenderer r = go.AddComponent <SkinnedMeshRenderer>();
            BakeMasterData      b = go.AddComponent <BakeMasterData>();
            b.m_lightmapST    = st;
            b.m_lightmapIndex = ind;
            b.m_renderer      = r;
            r.bones           = data[i].m_bones;
            r.rootBone        = data[i].m_rootBone;
            r.sharedMaterials = materials;
            r.sharedMesh      = m;
        }
    }
Ejemplo n.º 2
0
 private void PrepareObjects(SkinData[] data)
 {
     for (int i = 0; i < data.Length; ++i)
     {
         GameObject          go  = data[i].m_go;
         SkinnedMeshRenderer r   = go.GetComponent <SkinnedMeshRenderer>();
         BakeMasterData      bmd = go.AddComponent <BakeMasterData>();
         if (bmd != null)
         {
             GameObject.DestroyImmediate(bmd);
         }
         Material[] materials = r.sharedMaterials;
         Mesh       m         = r.sharedMesh;
         GameObject.DestroyImmediate(r);
         MeshRenderer mr = go.AddComponent <MeshRenderer>();
         MeshFilter   mf = go.AddComponent <MeshFilter>();
         mf.sharedMesh      = m;
         mr.sharedMaterials = materials;
         go.isStatic        = true;
     }
 }