Exemplo n.º 1
0
    /// <summary>
    /// 音量ボタン押下時
    /// </summary>
    public void PushVolumeButton()
    {
        bool boolVolumeChange = !GameSystemManager.GetBool(kindSaveKey);

        // ボタンイメージの切り替え
        ChangeButtonImage(boolVolumeChange);
        // 音量設定を変更する
        assetsManager.ChangeVolumeOnOff(kindSaveKey, boolVolumeChange);
        // オンオフ情報を保存
        GameSystemManager.SetBool(kindSaveKey, boolVolumeChange);
    }
Exemplo n.º 2
0
    /// <summary>
    /// ステージクリア処理
    /// </summary>
    public void StageClear()
    {
        if (GameSystemManager.timeAttackMode)
        {
            // *** タイムアタックモード ***
            stageManager.TimeAttackClear();
        }
        else
        {
            // *** 通常モード ***
            // 残ゴロを初期値に戻す
            GameSystemManager.stageTmpZangro = 3;

            // ステージによって遷移イベントと設定するフラグを変更
            string loadEventKey = null;
            switch (SceneManager.GetActiveScene().name)
            {
            case GameUtil.Const.SCENE_NAME_STAGE1:
                // ステージ1クリア時
                GameSystemManager.SetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE1, true);
                loadEventKey = GameUtil.Const.FUNGUS_KEY_EVENT_EPISODE1_END;
                break;

            case GameUtil.Const.SCENE_NAME_STAGE2:
                // ステージ2クリア時
                GameSystemManager.SetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE2, true);
                if (GameSystemManager.boolKaniAttack)
                {
                    loadEventKey = GameUtil.Const.FUNGUS_KEY_EVENT_EPISODE2_END;
                }
                else
                {
                    loadEventKey = GameUtil.Const.FUNGUS_KEY_EVENT_EPISODE2_END_2;
                }
                break;

            case GameUtil.Const.SCENE_NAME_STAGE3:
                // ステージ3クリア時
                GameSystemManager.SetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE3, true);
                loadEventKey = GameUtil.Const.FUNGUS_KEY_EVENT_EPISODE3_END;
                break;

            case GameUtil.Const.SCENE_NAME_STAGE4:
                // ステージ4クリア時
                GameSystemManager.SetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE4, true);
                loadEventKey = GameUtil.Const.FUNGUS_KEY_EVENT_EPISODE4_END;
                break;

            case GameUtil.Const.SCENE_NAME_STAGE5:
                // ステージ5クリア時
                GameSystemManager.SetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE5, true);
                loadEventKey = GameUtil.Const.FUNGUS_KEY_EVENT_EPISODE5_END;
                break;
            }

            // イベントシーンに遷移
            SceneManager.LoadSceneAsync(GameUtil.Const.SCENE_NAME_EVENT).AsObservable()
            .Subscribe(_ =>
            {
                EventManager eventManager   = FindObjectOfType <EventManager>() as EventManager;
                eventManager.loadEventParam = loadEventKey;
            });
        }
    }
    // ---------- トリガーイベント ----------
    /// <summary>
    /// スコア加算処理
    /// </summary>
    public void AddScore()
    {
        // ゲーム終了時は対象外
        if (gameState == GameState.END)
        {
            return;
        }

        // スコアを加算
        score++;
        scoreText.text = score.ToString();

        // 1000に達したらゲームクリア
        if (score >= 1000)
        {
            // マスターフラグをTRUEにする
            GameSystemManager.SetBool(GameUtil.Const.SAVE_KEY_BOOL_MASTER, true);
            Invoke("GameOver", 3.0f);
            return;
        }

        // レベルアップ対象スコアに達した場合
        if (levelupScoreList.Contains(score.ToString()))
        {
            // スコア別にパラメータを設定
            float[] paramList = null;
            switch (score)
            {
            case 5:
                paramList = new float[] { -2.0f, 3.0f };
                break;

            case 10:
                paramList = new float[] { -2.5f, 2.5f };
                break;

            case 20:
                paramList = new float[] { -3.0f, 2.5f };
                break;

            case 30:
                paramList = new float[] { -3.5f, 2.3f };
                break;

            case 50:
                paramList = new float[] { -4.0f, 2.3f };
                break;

            case 70:
                paramList = new float[] { -4.5f, 2.3f };
                break;

            case 100:
                paramList = new float[] { -5.0f, 2.0f };
                break;

            case 150:
                paramList = new float[] { -5.5f, 2.0f };
                break;

            case 200:
                paramList = new float[] { -6.0f, 2.0f };
                break;

            case 250:
                paramList = new float[] { -6.5f, 2.0f };
                break;

            case 300:
                paramList = new float[] { -7.0f, 1.8f };
                break;

            case 400:
                paramList = new float[] { -7.5f, 1.8f };
                break;

            case 500:
                paramList = new float[] { -8.0f, 1.8f };
                break;

            case 600:
                paramList = new float[] { -8.5f, 1.8f };
                break;

            case 700:
                paramList = new float[] { -8.7f, 1.8f };
                break;

            case 800:
                paramList = new float[] { -9.0f, 1.8f };
                break;

            case 900:
                paramList = new float[] { -9.5f, 1.8f };
                break;

            case 950:
                paramList = new float[] { -10.0f, 1.5f };
                break;
            }
            // 重力とマグネ生成待機時間をレベルアップ
            Physics.gravity   = new Vector3(0, paramList[0], 0);
            magneWaitBaseTime = paramList[1];
            // 効果音再生
            assetsManager.PlayOneShot(GameUtil.Const.SOUND_KEY_LEVELUP);
            // レベルアップエフェクトを再生
            StartLevelUpEffect();
        }
    }