Example #1
0
    void Update()
    {
        if (!changeSceneFlg)
        {
            if (!st.GetCloseEnd())
            {
                // これだとステセレとかでタイトル戻れない
                //if (!st.GetCloseEnd() && (!sf.IsFadeEnd() || SceneManager.GetActiveScene().name == "StageSelect")) {
                // これだとオープニング流れない、ステセレでタイトル戻れない
                //if (!st.GetCloseEnd() && !sf.IsFadeEnd()){
                // これだとオープニング流れない、ステセレでEXエリア行けない
                if (flg && sf.IsFadeEnd())
                {
                    changeSceneFlg = true;
                }
                return;
            }
            else
            {
                changeSceneFlg = true;
            }
        }
        else
        {
            switch (changeSceneMode)
            {
            // 次のステージへ
            case CHANGE_SCENE_MODE.NEXT:
            {
                int area, stage;
                area  = Area.GetAreaNumber();
                stage = Area.GetStageNumber();

                /*stage++;
                 *
                 * if (stage == (int)StageInfo.STAGE.STAGE_MAX) {
                 *  area++;
                 *  stage = 1;
                 *  if (area == (int)StageInfo.AREA.AREA_MAX) {
                 *      endGameFlg = true;
                 *  }
                 * }
                 *
                 * string loadSceneName = "Stage" + area.ToString() + "-" + stage.ToString();
                 *
                 * if (!endGameFlg) {
                 *  // 次のステージを読み込む
                 *  // 後で修正
                 *  SceneManager.LoadScene(loadSceneName, LoadSceneMode.Single);
                 * }
                 * else {
                 *  // 最終ステージクリア後の処理
                 * }*/

                // 次のステージがない場合はResult.cs側で「次のステージへ」ボタンを非アクティブにするのでここでの判定はいらない
                string nextSceneName = Area.GetNextStageSceneName(area, stage);
                // 次のステージを読み込む
                SceneManager.LoadScene(nextSceneName, LoadSceneMode.Single);
            }
            break;

            // リトライ
            case CHANGE_SCENE_MODE.RETRY:
                // 現在のシーンを再読込
                SceneManager.LoadScene(SceneManager.GetActiveScene().name, LoadSceneMode.Single);
                break;

            // チュートリアル
            case CHANGE_SCENE_MODE.TUTORIAL:
                // チュートリアルシーンを読み込み
                SceneManager.LoadScene("Tutorial-1", LoadSceneMode.Single);
                break;

            // ステージセレクト
            case CHANGE_SCENE_MODE.STAGESELECT:
                // ステセレシーンを読み込み
                SceneManager.LoadScene(stageSelectScene, LoadSceneMode.Single);
                break;

            // タイトル
            case CHANGE_SCENE_MODE.TITLE:
                // タイトルシーンを読み込み
                SceneManager.LoadScene(titleScene, LoadSceneMode.Single);
                break;

            // エンディング
            case CHANGE_SCENE_MODE.ESCAPE:
                // エンディングを読み込み
                SceneManager.LoadScene("Ending", LoadSceneMode.Single);
                break;

            default:
                break;
            }
        }
    }