Esempio n. 1
0
 public void Unload(string sceneName, Action onComplete)
 {
     if (AdditiveScenesLoader.TryGetLoadedScene(sceneName, out var scene))
     {
         AdditiveScenesLoader.Unload(scene, onComplete);
     }
     else
     {
         // TODO error and optional param with scene action stack
         onComplete?.Invoke();
     }
 }
Esempio n. 2
0
 public void Unload(string sceneName, Action onComplete)
 {
     if (AdditiveScenesLoader.TryGetLoadedScene(sceneName, out var scene))
     {
         var sceneDelegate = FindMonoTypeOnSceneRoot <ISceneDelegate>(scene);
         sceneDelegate?.OnSceneUnload();
         AdditiveScenesLoader.Unload(scene, onComplete);
     }
     else
     {
         // TODO error and optional param with scene action stack
         onComplete?.Invoke();
     }
 }
Esempio n. 3
0
 public void Deactivate <T>(string sceneName, Action <T> onComplete) where T : ISceneManager
 {
     if (AdditiveScenesLoader.TryGetLoadedScene(sceneName, out var scene))
     {
         var sceneManager  = FindMonoTypeOnSceneRoot <T>(scene);
         var sceneDelegate = FindMonoTypeOnSceneRoot <ISceneDelegate>(scene);
         sceneDelegate?.DeactivateScene(() =>
         {
             onComplete?.Invoke(sceneManager);
         });
     }
     else
     {
         throw new InvalidOperationException($"{nameof(SceneLoadService)} can not deactivate {sceneName} scene, because it wasn't loaded. ");
     }
 }