/// <summary> /// Load the scene in the given ScenePackage. /// </summary> /// <param name="scenePackage">The ScenePackage to load.</param> public IEnumerable <SceneBuildStatus> loadScene(ScenePackage scenePackage, SceneBuildOptions options) { currentScenePackage = scenePackage; yield return(new SceneBuildStatus() { Message = "Setting up Resources" }); sceneResourceManager.changeResourcesToMatch(scenePackage.ResourceManager); sceneResourceManager.initializeResources(); currentScene = scenePackage.SceneDefinition.createScene(); if (OnSceneLoading != null) { OnSceneLoading.Invoke(this, currentScene); } currentSimObjects = scenePackage.SimObjectManagerDefinition.createSimObjectManager(currentScene.getDefaultSubScene()); foreach (var status in currentScene.buildSceneStatus(options)) { yield return(status); } if (OnSceneLoaded != null) { OnSceneLoaded.Invoke(this, currentScene); } }
/// <summary> /// Load the scene in the given ScenePackage. /// </summary> /// <param name="scenePackage">The ScenePackage to load.</param> public IEnumerable <SceneBuildStatus> loadSceneCo(ScenePackage scenePackage, SceneBuildOptions options = SceneBuildOptions.SingleUseDefinitions) { this.scenePackage = scenePackage; yield return(new SceneBuildStatus() { Message = "Setting up Resources" }); sceneResourceManager.changeResourcesToMatch(scenePackage.ResourceManager); sceneResourceManager.initializeResources(); scene = scenePackage.SceneDefinition.createScene(); scene.Scope = pluginManager.GlobalScope.ServiceProvider.CreateScope(); if (OnSceneLoading != null) { OnSceneLoading.Invoke(this, scene); } currentSimObjects = scenePackage.SimObjectManagerDefinition.createSimObjectManager(scene.getDefaultSubScene()); if (dynamicMode) { foreach (var status in scene.buildSceneStatus(options)) { yield return(status); } } else { scene.buildStaticScene(); } if (OnSceneLoaded != null) { OnSceneLoaded.Invoke(this, scene); } foreach (DebugInterface debugInterface in pluginManager.DebugInterfaces) { debugInterface.createDebugInterface(pluginManager.RendererPlugin, scene.getDefaultSubScene()); } }