/// <summary> /// シーン遷移 /// </summary> /// <param name="sceneName"></param> /// <param name="autoFadeIn">遷移が完了したら自動でフェードを解除するか</param> /// <param name="showProgress">ローディングプログレスバーを表示するか</param> public void GoTo(string sceneName, bool autoFadeIn = true, bool showProgress = true) { _onSceneChangeStarted?.Invoke(); if (_fade != null) { _fade.FadeOut(_fadeDuration, () => { var asyncOperation = SceneManager.LoadSceneAsync(sceneName); if (showProgress) { StartCoroutine(DoShowLoadingProgress(asyncOperation, () => { if (autoFadeIn) { _fade.FadeIn(_fadeDuration); } })); } else { asyncOperation.completed += (x) => { if (autoFadeIn) { _fade.FadeIn(_fadeDuration); } }; } }); } else { SceneManager.LoadScene(sceneName); } }