/// <summary> /// 音量ボタン押下時 /// </summary> public void PushVolumeButton() { bool boolVolumeChange = !GameSystemManager.GetBool(kindSaveKey); // ボタンイメージの切り替え ChangeButtonImage(boolVolumeChange); // 音量設定を変更する assetsManager.ChangeVolumeOnOff(kindSaveKey, boolVolumeChange); // オンオフ情報を保存 GameSystemManager.SetBool(kindSaveKey, boolVolumeChange); }
/// <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(); } }