// ---------- ゲーム終了 ---------- 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); }
void Start() { assetsManager = FindObjectOfType <AssetsManager>(); // UI部品取得 startButton = GameObject.Find(START_BUTTON_NAME); timeAttackButton = GameObject.Find(TIMEATTACK_BUTTON_NAME); tutorialDispButton = GameObject.Find(TUTORIAL_DISP_BUTTON); modeCanvas = GameObject.Find(MODE_CANVAS_NAME); timeAttackCanvas = GameObject.Find(TIMEATTACK_CANVAS_NAME); tutorialCanvas = GameObject.Find(TUTORIAL_CANVAS_NAME); episode1Button = GameObject.Find(EPISODE1_BUTTON_NAME); episode2Button = GameObject.Find(EPISODE2_BUTTON_NAME); episode3Button = GameObject.Find(EPISODE3_BUTTON_NAME); episode4Button = GameObject.Find(EPISODE4_BUTTON_NAME); episode5Button = GameObject.Find(EPISODE5_BUTTON_NAME); timeAttackStage1Button = GameObject.Find(TIMEATTACK_STAGE1_BUTTON_NAME); timeAttackStage2Button = GameObject.Find(TIMEATTACK_STAGE2_BUTTON_NAME); timeAttackStage3Button = GameObject.Find(TIMEATTACK_STAGE3_BUTTON_NAME); timeAttackStage4Button = GameObject.Find(TIMEATTACK_STAGE4_BUTTON_NAME); timeAttackStage5Button = GameObject.Find(TIMEATTACK_STAGE5_BUTTON_NAME); clearBestTimeStage1Text = GameObject.Find(CLEAR_BEST_TIME_STAGE1_TEXT_NAME).GetComponent <TextMeshProUGUI>(); clearBestTimeStage2Text = GameObject.Find(CLEAR_BEST_TIME_STAGE2_TEXT_NAME).GetComponent <TextMeshProUGUI>(); clearBestTimeStage3Text = GameObject.Find(CLEAR_BEST_TIME_STAGE3_TEXT_NAME).GetComponent <TextMeshProUGUI>(); clearBestTimeStage4Text = GameObject.Find(CLEAR_BEST_TIME_STAGE4_TEXT_NAME).GetComponent <TextMeshProUGUI>(); clearBestTimeStage5Text = GameObject.Find(CLEAR_BEST_TIME_STAGE5_TEXT_NAME).GetComponent <TextMeshProUGUI>(); backGroundMaterial = GameObject.Find(BACKGROUND_IMAGE_NAME).GetComponent <Renderer>().material; titleMaterial = GameObject.Find(TITLE_IMAGE_NAME).GetComponent <Renderer>().material; goroyanMaterial = GameObject.Find(GOROYAN_IMAGE_NAME).GetComponent <Renderer>().material; // スタートボタン表示 SetStartButtonEnable(); // ゲーム進行によってボタンの活性/非活性を切替 episode2Button.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE1); episode3Button.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE2); episode4Button.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE3); episode5Button.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE4); timeAttackStage1Button.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE1); timeAttackStage2Button.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE2); timeAttackStage3Button.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE3); timeAttackStage4Button.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE4); timeAttackStage5Button.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE5); timeAttackButton.GetComponent <Button>().interactable = GameSystemManager.GetBool(GameUtil.Const.SAVE_KEY_CLEAR_STAGE1); // ベストタイムを取得 clearBestTimeStage1Text.text = GameSystemManager.GetFloat(GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE1).ToString("n2") + " 秒"; clearBestTimeStage2Text.text = GameSystemManager.GetFloat(GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE2).ToString("n2") + " 秒"; clearBestTimeStage3Text.text = GameSystemManager.GetFloat(GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE3).ToString("n2") + " 秒"; clearBestTimeStage4Text.text = GameSystemManager.GetFloat(GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE4).ToString("n2") + " 秒"; clearBestTimeStage5Text.text = GameSystemManager.GetFloat(GameUtil.Const.SAVE_KEY_BEST_CLEAR_TIME_STAGE5).ToString("n2") + " 秒"; // 操作説明を非表示にする tutorialCanvas.SetActive(false); // タイムアタックモードをOFFにする GameSystemManager.timeAttackMode = 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); }