Beispiel #1
0
 public static void LoadSceneAsync(int sceneBuildIndex, System.Action sceneLoadedAction, eSceneTransition sceneTransition = eSceneTransition.None)
 {
     if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().buildIndex == sceneBuildIndex)
     {
         if (sceneLoadedAction != null)
         {
             sceneLoadedAction();
         }
     }
     else
     {
         CreateSceneLoaderController().LoadSceneAsync(sceneBuildIndex, sceneLoadedAction, sceneTransition);
     }
 }
Beispiel #2
0
 public static void LoadSceneAsync(string scenename, System.Action sceneLoadedAction, eSceneTransition sceneTransition = eSceneTransition.None)
 {
     if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == scenename)
     {
         if (sceneLoadedAction != null)
         {
             sceneLoadedAction();
         }
     }
     else
     {
         CreateSceneLoaderController().LoadSceneAsync(scenename, sceneLoadedAction, sceneTransition);
     }
 }
Beispiel #3
0
 public void LoadSceneAsync(int sceneBuildIndex, System.Action sceneLoadedAction, eSceneTransition sceneTransition)
 {
     StartCoroutine(LoadSceenCorutine(sceneBuildIndex, sceneTransition, sceneLoadedAction));
 }
Beispiel #4
0
 public void LoadSceneAsync(string sceneName, System.Action sceneLoadedAction, eSceneTransition sceneTransition)
 {
     int sceneBuildIndex = UnityEngine.SceneManagement.SceneManager.GetSceneByName(sceneName).buildIndex;
     StartCoroutine(LoadSceenCorutine(sceneBuildIndex, sceneTransition, sceneLoadedAction));
 }
Beispiel #5
0
 public static void ReloadCurrentScene(System.Action sceneLoadedAction, eSceneTransition sceneTransition = eSceneTransition.None)
 {
     CreateSceneLoaderController().LoadSceneAsync(UnityEngine.SceneManagement.SceneManager.GetActiveScene().buildIndex, sceneLoadedAction, sceneTransition);
 }
Beispiel #6
0
        private IEnumerator LoadSceenCorutine(int sceneBuildIndex, eSceneTransition sceneTransition, System.Action completionAction)
        {
            switch (sceneTransition)
            {
                case eSceneTransition.FadeOut:
                case eSceneTransition.FadeOutFadeIn:
                    {
                        CreateOverlayTexture();
                        _fadeValue = 0;
                        _displayOverlay = true;
                        _fadeDirection = 1;
                        while (_fadeValue <= 1f)
                        {
                            yield return 0f;
                        }
                        break;
                    }
            }

            AsyncOperation sceneLoadOperation = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneBuildIndex);

            while (sceneLoadOperation != null && !sceneLoadOperation.isDone)
            {
                yield return 0f;
            }

            if (completionAction != null)
            {
                completionAction();
            }

            switch (sceneTransition)
            {
                case eSceneTransition.FadeOutFadeIn:
                    {
                        CreateOverlayTexture();
                        _fadeValue = 1;
                        _displayOverlay = true;
                        _fadeDirection = -1;
                        while (_fadeValue >= 0f)
                        {
                            yield return 0f;
                        }

                        break;
                    }
            }
            Destroy(this.gameObject);
        }