// ---------- ゲーム終了 ----------
    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;
        });
    }
Beispiel #3
0
    /// <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);
    }