소스 검색

Fix a scene with many multi material starting with the same material

Jérémie Sellam 8 년 전
부모
커밋
a76d86b71c
1개의 변경된 파일11개의 추가작업 그리고 3개의 파일을 삭제
  1. 11 3
      Exporters/Unity 5/EditorToolkit/Assets/Babylon/Source/SceneBuilder.Meshes.cs

+ 11 - 3
Exporters/Unity 5/EditorToolkit/Assets/Babylon/Source/SceneBuilder.Meshes.cs

@@ -294,13 +294,21 @@ namespace Unity3D2Babylon
                     if (mesh.subMeshCount > 1)
                     {
                         BabylonMultiMaterial bMultiMat;
-                        if (!multiMatDictionary.ContainsKey(renderer.sharedMaterial.name))
+
+                        string multiMatName = "";
+                        for (int i = 0; i < renderer.sharedMaterials.Length; i++)
+                        {
+                            multiMatName += renderer.sharedMaterials[i].name;
+                        }
+                    
+
+                        if (!multiMatDictionary.ContainsKey(multiMatName))
                         {
                             bMultiMat = new BabylonMultiMaterial
                             {
                                 materials = new string[mesh.subMeshCount],
                                 id = Guid.NewGuid().ToString(),
-                                name = renderer.sharedMaterial.name
+                                name = multiMatName
                             };
 
                             for (int i = 0; i < renderer.sharedMaterials.Length; i++)
@@ -319,7 +327,7 @@ namespace Unity3D2Babylon
                         }
                         else
                         {
-                            bMultiMat = multiMatDictionary[renderer.sharedMaterial.name];
+                            bMultiMat = multiMatDictionary[multiMatName];
                         }
 
                         babylonMesh.materialId = bMultiMat.id;