// ---------- ゲーム終了 ---------- private void EndStart() { StateStartCommon(); //結果画面を表示 uiCanvas.SetActive(false); resultCanvas.SetActive(true); bestScoreImage.SetActive(false); // スコアを設定 resultScoreText.text = score.ToString(); // ベストスコアの設定 float bestScore = GameSystemManager.GetFloat(GameUtil.Const.SAVE_KEY_BEST_SCORE); if (bestScore == 0 || bestScore < score) { // ベストスコアの場合、保存する GameSystemManager.SetFloat(GameUtil.Const.SAVE_KEY_BEST_SCORE, score); bestScoreImage.SetActive(true); } // スコアの登録(ベストタイムに限らず送信) SendScore(score); // タワー全体をカメラ視点対象に設定 cameraController.LookTowerTarget(); // BGM変更 assetsManager.PlayBGM(GameUtil.Const.BGM_KEY_MAGGOAL, false); }
/// <summary> /// タイムアタックモードクリア処理 /// </summary> public void TimeAttackClear() { switch (SceneManager.GetActiveScene().name) { case GameUtil.Const.SCENE_NAME_STAGE1: clearSceneName = "ステージ1"; bestTimeSaveKey = GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE1; break; case GameUtil.Const.SCENE_NAME_STAGE2: clearSceneName = "ステージ2"; bestTimeSaveKey = GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE2; break; case GameUtil.Const.SCENE_NAME_STAGE3: clearSceneName = "ステージ3"; bestTimeSaveKey = GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE3; break; case GameUtil.Const.SCENE_NAME_STAGE4: clearSceneName = "ステージ4"; bestTimeSaveKey = GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE4; break; case GameUtil.Const.SCENE_NAME_STAGE5: clearSceneName = "ステージ5"; bestTimeSaveKey = GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE5; break; } // ベストタイムの場合、保存する float clearTime = timeCount; float bestTime = GameSystemManager.GetFloat(bestTimeSaveKey); bool boolBest = false; if (bestTime == 0 || bestTime > clearTime) { GameSystemManager.SetFloat(bestTimeSaveKey, clearTime); boolBest = true; } // クリアシーンへ遷移 SceneManager.LoadSceneAsync(GameUtil.Const.SCENE_NAME_TIMEATTACK_CLEAR).AsObservable() .Subscribe(_ => { TimeAttackClearManager clearManager = FindObjectOfType <TimeAttackClearManager>(); clearManager.clearTime = clearTime; clearManager.clearStageName = clearSceneName; clearManager.bestTime = boolBest; }); }
/// <summary> /// スコア設定処理 /// </summary> /// <param name="mode">モード</param> /// <param name="score">スコア</param> public void SetResultMole(string mode, int score) { // 言語設定によって設定する画像を切り替える SystemLanguage sl = Application.systemLanguage; switch (sl) { // *** 日本語 *** case SystemLanguage.Japanese: img_mole_bad = img_mole_bad_ja; img_mole_good = img_mole_good_ja; img_mole_perfect = img_mole_perfect_ja; img_majiro_bad = img_majiro_bad_ja; img_majiro_good = img_majiro_good_ja; img_majiro_perfect = img_majiro_perfect_ja; break; // *** 英語(デフォルト) *** case SystemLanguage.English: default: img_mole_bad = img_mole_bad_en; img_mole_good = img_mole_good_en; img_mole_perfect = img_mole_perfect_en; img_majiro_bad = img_majiro_bad_en; img_majiro_good = img_majiro_good_en; img_majiro_perfect = img_majiro_perfect_en; break; } // モードによって判定スコア、保存キーを切り替える int[] scoreList = null; string bestSaveKey = null; switch (mode) { case GameUtil.Const.MODE_EASY: scoreList = e_ScoreList; bestSaveKey = GameUtil.Const.SAVE_KEY_BEST_SCORE_EASY; break; case GameUtil.Const.MODE_NORMAL: scoreList = n_ScoreList; bestSaveKey = GameUtil.Const.SAVE_KEY_BEST_SCORE_NORMAL; break; case GameUtil.Const.MODE_HARD: scoreList = h_ScoreList; bestSaveKey = GameUtil.Const.SAVE_KEY_BEST_SCORE_HARD; break; } // スコアによって画像を切り替える if (score == scoreList[0]) { dispSprite = img_mole_perfect; } else if (score >= scoreList[1]) { dispSprite = img_mole_good; } else if (score >= 0) { dispSprite = img_mole_bad; } else if (score > scoreList[2]) { dispSprite = img_majiro_bad; } else if (score > scoreList[3]) { dispSprite = img_majiro_good; } else if (score == scoreList[3]) { dispSprite = img_majiro_perfect; } // ベストスコアの場合、保存する float bestScore = GameSystemManager.GetFloat(bestSaveKey); if (bestScore == 0 || bestScore < score) { GameSystemManager.SetFloat(bestSaveKey, score); bestFlg = true; } // 表示させる Invoke("DispResultMole", 1.0f); }