Sfoglia il codice sorgente

Merge pull request #4424 from julien-moreau/master

Adding way to serialize all materials in SceneSerializer.SerializeMesh
David Catuhe 7 anni fa
parent
commit
07759a6597

+ 1 - 0
dist/preview release/what's new.md

@@ -52,6 +52,7 @@
 
 - VR experience helper will now fire pointer events even when no mesh is currently hit ([TrevorDev](https://github.com/TrevorDev))
 - RawTexture.CreateAlphaTexture no longer fails to create a usable texture ([TrevorDev](https://github.com/TrevorDev))
+- SceneSerializer.SerializeMesh now serializes all materials kinds (not only StandardMaterial) ([julien-moreau](https://github.com/julien-moreau))
 
 ### Core Engine
 

+ 6 - 6
src/Tools/babylon.sceneSerializer.ts

@@ -65,17 +65,17 @@
         if (mesh.delayLoadState === Engine.DELAYLOADSTATE_LOADED || mesh.delayLoadState === Engine.DELAYLOADSTATE_NONE) {
             //serialize material
             if (mesh.material) {
-                if (mesh.material instanceof StandardMaterial) {
-                    serializationObject.materials = serializationObject.materials || [];
-                    if (!serializationObject.materials.some((mat: Material) => (mat.id === (<Material>mesh.material).id))) {
-                        serializationObject.materials.push(mesh.material.serialize());
-                    }
-                } else if (mesh.material instanceof MultiMaterial) {
+                if (mesh.material instanceof MultiMaterial) {
                     serializationObject.multiMaterials = serializationObject.multiMaterials || [];
                     if (!serializationObject.multiMaterials.some((mat: Material) => (mat.id === (<Material>mesh.material).id))) {
                         serializationObject.multiMaterials.push(mesh.material.serialize());
                     }
 
+                } else {
+                    serializationObject.materials = serializationObject.materials || [];
+                    if (!serializationObject.materials.some((mat: Material) => (mat.id === (<Material>mesh.material).id))) {
+                        serializationObject.materials.push(mesh.material.serialize());
+                    }
                 }
             }
             //serialize geometry