protected IEnumerator Transition(string sceneName)
        {
            m_Transitioning = true;

            yield return(StartCoroutine(SceneFader.FadeSceneOut(SceneFader.FadeType.Loading)));

            if (sceneName != null)
            {
                yield return(SceneManager.LoadSceneAsync(sceneName));
            }
            else
            {
#if UNITY_EDITOR
                Debug.LogWarning("No scene transition start was found");
#endif
                yield return(SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().buildIndex));
            }

            SceneTransitionEnd sceneTransitionEnd = GetSceneTransitionEnd();
            if (sceneTransitionEnd != null)
            {
                SetupNewScene(sceneTransitionEnd);
            }
            yield return(StartCoroutine(SceneFader.FadeSceneIn()));

            m_Transitioning = false;
        }
        protected SceneTransitionEnd GetSceneTransitionEnd()
        {
            SceneTransitionEnd sceneTransitionEnd = FindObjectOfType <SceneTransitionEnd>();

            if (sceneTransitionEnd != null)
            {
                return(sceneTransitionEnd);
            }
#if UNITY_EDITOR
            Debug.LogWarning("No scene transition end was found");
#endif
            return(null);
        }
 protected void SetupNewScene(SceneTransitionEnd sceneTransitionEnd)
 {
 }