Преглед изворни кода

Better fix for loadassetcontainer for bjs

David Catuhe пре 5 година
родитељ
комит
3a15f8d7f7
1 измењених фајлова са 4 додато и 8 уклоњено
  1. 4 8
      src/Loading/Plugins/babylonFileLoader.ts

+ 4 - 8
src/Loading/Plugins/babylonFileLoader.ts

@@ -112,8 +112,6 @@ var loadDetailLevels = (scene: Scene, mesh: AbstractMesh) => {
 var loadAssetContainer = (scene: Scene, data: string, rootUrl: string, onError?: (message: string, exception?: any) => void, addToScene = false): AssetContainer => {
     var container = new AssetContainer(scene);
 
-    scene._blockEntityCollection = !addToScene;
-
     // Entire method running in try block, so ALWAYS logs as far as it got, only actually writes details
     // when SceneLoader.debugLogging = true (default), or exception encountered.
     // Everything stored in var log instead of writing separate lines to support only writing in exception,
@@ -436,11 +434,7 @@ var loadAssetContainer = (scene: Scene, data: string, rootUrl: string, onError?:
         }
         if (parsedData.actions !== undefined && parsedData.actions !== null) {
             ActionManager.Parse(parsedData.actions, null, scene);
-        }
-
-        if (!addToScene) {
-            container.removeAllFromScene();
-        }
+        }        
     } catch (err) {
         let msg = logOperation("loadAssets", parsedData ? parsedData.producer : "Unknown") + log;
         if (onError) {
@@ -450,7 +444,9 @@ var loadAssetContainer = (scene: Scene, data: string, rootUrl: string, onError?:
             throw err;
         }
     } finally {
-        scene._blockEntityCollection = false;
+        if (!addToScene) {
+            container.removeAllFromScene();
+        }
         if (log !== null && SceneLoader.loggingLevel !== SceneLoader.NO_LOGGING) {
             Logger.Log(logOperation("loadAssets", parsedData ? parsedData.producer : "Unknown") + (SceneLoader.loggingLevel !== SceneLoader.MINIMAL_LOGGING ? log : ""));
         }