public void LoadScene(string sceneName, ETransitionType type = ETransitionType.None, OnBeforeSceneLoadCallback onBeforeSceneLoadCallback = null) { sceneToLoad = sceneName; beforeSceneLoadCallback = onBeforeSceneLoadCallback; transitionsObject.SetActive(true); TransitionType = type; TransitionPhase = ETransitionPhase.Out; if (TransitionType == ETransitionType.None) { OnOutComplete(); OnInComplete(); } }
public void LoadScene(string sceneName, string transition = NO_TRANSITION, OnBeforeSceneLoadCallback onBeforeSceneLoadCallback = null) { sceneToLoad = sceneName; beforeSceneLoadCallback = onBeforeSceneLoadCallback; transitionsObject.SetActive(true); Transition = transition; TransitionPhase = ETransitionPhase.Out; if (Transition == NO_TRANSITION) { OnOutComplete(); OnInComplete(); } }
public void OnOutComplete() { if (!string.IsNullOrWhiteSpace(sceneToLoad)) { beforeSceneLoadCallback?.Invoke(); if (SceneUtility.GetBuildIndexByScenePath(loadingSceneName) >= 0) { SceneManager.LoadScene(loadingSceneName); } StartCoroutine(CRLoadSceneInBackground(sceneToLoad)); } else { beforeSceneLoadCallback?.Invoke(); TransitionPhase = ETransitionPhase.In; } sceneToLoad = null; beforeSceneLoadCallback = null; }