Esempio n. 1
0
        IEnumerator ClearSequence()
        {
            // クリア表示
            clearText.SetTrigger("Show");
            StellaMove.instance.ChangeAction(StellaMove.ActionType.Clear);

            // 星を回転させる
            Goal.ClearAnim();
            yield return(new WaitForSeconds(RollingSeconds));

            // フェードアウト
            Color lastColor = Fade.NowColor;

            yield return(Fade.StartFade(Fade.FadeStateType.Out, clearFadeColor, ClearFadeSeconds));

            // 背景を切り替える
            BGScroller.instance.ChangeMaterials(clearBGMaterials);

            // フェードイン
            yield return(Fade.StartFade(Fade.FadeStateType.In, clearFadeColor, ClearFadeSeconds));

            Fade.SetFadeColor(lastColor);

            // ステラが飛び乗る
            StellaClear.HoldStar();
        }
Esempio n. 2
0
        private void Start()
        {
            if (SceneChanger.NowScene == SceneChanger.SceneType.StageEditor)
            {
                // フェードアウト
                Fade.Instance.StartCoroutine(Fade.StartFade(Fade.FadeStateType.In, 0f));

                enabled = true;
            }
            else
            {
                enabled = false;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// シーン切り替え処理
        /// </summary>
        /// <returns></returns>
        IEnumerator SceneChange()
        {
            isBooting = false;

            // シーンを非アクティブで読み込み開始
            string sceneName = NextScene.ToString();

            if (NextScene == SceneType.Game)
            {
                sceneName = $"Stage{GameParams.SelectedStage+1}";
            }
            loadingSceneOperations[loadingSceneOperationCount] = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
            loadingSceneOperations[loadingSceneOperationCount].allowSceneActivation = false;
            loadingSceneOperationCount++;

            // フェードアウト
            yield return(Fade.StartFade(Fade.FadeStateType.Out, fadeTime, true));

            // 不要になったシーンを解放する
            if (loadedSceneName.Length > 0)
            {
                unloadSceneOperations[unloadSceneCount] = SceneManager.UnloadSceneAsync(loadedSceneName);
                unloadSceneCount++;
            }

            loadedSceneName = sceneName;

            // シーン切り替え
            NowScene  = NextScene;
            NextScene = SceneType.None;

            // シーンをアクティブにする
            loadingSceneOperations[0].allowSceneActivation = true;

            // シーンの読み込みと解放の完了を待つ
            for (int i = 0; i < loadingSceneOperationCount; i++)
            {
                if (!loadingSceneOperations[i].isDone)
                {
                    yield return(loadingSceneOperations[i]);
                }
            }
            for (int i = 0; i < unloadSceneCount; i++)
            {
                if (!unloadSceneOperations[i].isDone)
                {
                    yield return(unloadSceneOperations[i]);
                }
            }
            // シーンの初期化を待つ
            while (loadingSceneManagerCount < loadingSceneOperationCount)
            {
                yield return(null);
            }
            // フェードアウト完了処理を呼び出す
            for (int i = 0; i < loadingSceneManagerCount; i++)
            {
                loadingSceneManagers[i].OnFadeOutDone();
            }

            // カメラ切り替え
            if (Camera.main != null)
            {
                SetMainCamera(Camera.main);
            }
            else
            {
                SetSubCamera();
            }

            // フェードイン
            yield return(Fade.StartFade(Fade.FadeStateType.In, fadeTime));

            // フェードイン完了処理を呼び出す
            for (int i = 0; i < loadingSceneManagerCount; i++)
            {
                loadingSceneManagers[i].OnFadeInDone();
            }

            // シーン切り替え完了
            loadingSceneOperationCount = 0;
            loadingSceneManagerCount   = 0;
            unloadSceneCount           = 0;

            IsChanging = false;
            enabled    = false;
        }
Esempio n. 4
0
        /// <summary>
        /// シーン切り替え処理
        /// </summary>
        /// <returns></returns>
        IEnumerator SceneChange()
        {
            // シーンを非アクティブで読み込み開始
            loadingSceneOperations[loadingSceneOperationCount] = SceneManager.LoadSceneAsync(NextScene.ToString(), LoadSceneMode.Additive);
            loadingSceneOperations[loadingSceneOperationCount].allowSceneActivation = false;
            loadingSceneOperationCount++;

            // フェードアウト
            yield return(Fade.StartFade(Fade.FadeStateType.Out, fadeTime, true));

            // 不要になったシーンを解放する
            if (NowScene != SceneType.None)
            {
                unloadSceneOperations[unloadSceneCount] = SceneManager.UnloadSceneAsync(NowScene.ToString());
                unloadSceneCount++;
            }

            // シーン切り替え
            NowScene  = NextScene;
            NextScene = SceneType.None;

            // シーンをアクティブにする
            loadingSceneOperations[0].allowSceneActivation = true;

            // シーンの読み込みと解放の完了を待つ
            for (int i = 0; i < loadingSceneOperationCount; i++)
            {
                if (!loadingSceneOperations[i].isDone)
                {
                    yield return(loadingSceneOperations[i]);
                }
            }
            for (int i = 0; i < unloadSceneCount; i++)
            {
                if (!unloadSceneOperations[i].isDone)
                {
                    yield return(unloadSceneOperations[i]);
                }
            }
            // シーンの初期化を待つ
            while (loadingSceneManagerCount < loadingSceneOperationCount)
            {
                yield return(null);
            }
            // フェードアウト完了処理を呼び出す
            for (int i = 0; i < loadingSceneManagerCount; i++)
            {
                loadingSceneManagers[i].OnFadeOutDone();
            }

            // フェードイン
            yield return(Fade.StartFade(Fade.FadeStateType.In, fadeTime));

            // フェードイン完了処理を呼び出す
            for (int i = 0; i < loadingSceneManagerCount; i++)
            {
                loadingSceneManagers[i].OnFadeInDone();
            }

            // シーン切り替え完了
            loadingSceneOperationCount = 0;
            loadingSceneManagerCount   = 0;
            unloadSceneCount           = 0;

            IsChanging = false;
            isBooting  = false;
            enabled    = false;
        }