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); } }
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); } }
public void LoadSceneAsync(int sceneBuildIndex, System.Action sceneLoadedAction, eSceneTransition sceneTransition) { StartCoroutine(LoadSceenCorutine(sceneBuildIndex, sceneTransition, sceneLoadedAction)); }
public void LoadSceneAsync(string sceneName, System.Action sceneLoadedAction, eSceneTransition sceneTransition) { int sceneBuildIndex = UnityEngine.SceneManagement.SceneManager.GetSceneByName(sceneName).buildIndex; StartCoroutine(LoadSceenCorutine(sceneBuildIndex, sceneTransition, sceneLoadedAction)); }
public static void ReloadCurrentScene(System.Action sceneLoadedAction, eSceneTransition sceneTransition = eSceneTransition.None) { CreateSceneLoaderController().LoadSceneAsync(UnityEngine.SceneManagement.SceneManager.GetActiveScene().buildIndex, sceneLoadedAction, sceneTransition); }
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); }