void Update() { if (Input.GetKeyDown(KeyCode.R)) { ScoreInfo.ResetHighScore(); } // カメラが写してる左端から右端まで距離のランダム randomX = Random.Range(-cameraX, cameraX); // カメラが写してる上から下までの距離のランダム randomY = Random.Range(-cameraY, cameraY); // スコア加算 if (isScoreCount) { scoreCount++; isScoreCount = false; } // フェーズ1か2の時の処理 if (gamePhase == GamePhase.Phase1 || gamePhase == GamePhase.Phase2) { // 一回だけ呼ぶようにするif文 if (isAddMeteo) { isAddMeteoCount = true; isAddMeteo = false; // 隕石を一回の生成で複数個生成するときの処理 for (int i = 0; i < addMeteos; i++) { // 隕石を生成 GameObject meteoClorn = Instantiate(addMeteoObj); // 生成された隕石をエネミーリストに追加する enemyList.Add(meteoClorn); } adMeteoNum = 0; } if (isAddMeteoCount) { // 一回だけ呼ぶようにするif文 if (i == 0) { i++; StartCoroutine(addMeteoCount()); } } } // フェーズが4の時の処理 if (gamePhase == GamePhase.Phase4) { // 一回だけ呼ぶようにするif文 if (isAddUfo) { isAddUFOCount = true; isAddUfo = false; // UFOを一回の生成で複数個生成する処理 for (int i = 0; i < addUFOs; i++) { // UFOを生成 GameObject ufoClorn = Instantiate(addUFOObj, new Vector3(0, -10, 0), Quaternion.identity); // 生成されたUFOをエネミーリストに追加 enemyList.Add(ufoClorn); } addUFONum = 0; } if (isAddUFOCount) { // 一回だけ呼ぶようにするif文 if (j == 0) { j++; StartCoroutine(addUFOCount()); } } } // ゲームステートごとの処理 switch (gameStates) { // ステートがタイトルの場合 case GameStates.Title: // 地球のHPのUIを非表示にする earth_HP.SetActive(false); // タイトルのBGMを流す BgmManeger.Instance.Changed(0); // スタートのフラグがたったら if (IsStart) { // タイトルのUIをフェードアウトさせる titleImage.GetComponent <FadeScript>().FadeOut(); // ゲームステートをスタートに変える gameStates = GameStates.Start; } break; // ステートがスタートの場合 case GameStates.Start: // タイマーを起動する Timer(); // 地球のHPのUIを表示させる earth_HP.SetActive(true); // 経過時間がフェーズを変える時間以上になったら if (time >= changeFeseTime) { // その時にフェーズが5だった場合は抜ける if (gamePhase == GamePhase.Phase5) { break; } // ゲームフェーズを速報を出すフェーズに変える gamePhase = GamePhase.PromptReport; isReport = false; // 経過時間の初期化 time = 0; } // ゲームステートがスタート中のゲームフェーズごとの処理 switch (gamePhase) { // ゲームフェーズが速報を出すフェーズだった場合 case GamePhase.PromptReport: // isReportがtrueじゃなかったら if (!isReport) { // EndPromptReportのコルーチンをスタート StartCoroutine(EndPromptReport()); isReport = true; } break; // ゲームフェーズが1の場合 case GamePhase.Phase1: // 初期隕石を3つ生成 if (firstMeteo < 3) { firstMeteo++; // 隕石を生成 GameObject meteoClorn = Instantiate(addMeteoObj); // 生成した隕石をエネミーリストに追加 enemyList.Add(meteoClorn); } break; case GamePhase.Phase2: break; case GamePhase.Phase3: break; // ゲームフェーズが4の場合 case GamePhase.Phase4: if (timeCount >= 5 && ufoPopCount < 3) { ufoPopCount++; // UFOを生成する処理 GameObject ufoClorn = Instantiate(addUFOObj, new Vector3(0, -10, 0), Quaternion.identity); // 生成したUFOをエネミーリストに追加 enemyList.Add(ufoClorn); isAddUfo = true; } break; // ゲームフェーズが5の場合 case GamePhase.Phase5: // 一回だけ呼ぶif文 if (marsPop == 0) { marsPop++; // 火星の出現 bosMars.gameObject.SetActive(true); // 火星のHPのUIを表示 kasei_HP.SetActive(true); // エネミーリストに火星を追加 enemyList.Add(bosMars); } boosSteage = true; break; } break; // ゲームステートがエンドの場合 case GameStates.End: // ゲームクリアかゲームオーバの文字が入るのテキストを表示 gameOverText.SetActive(true); // chengeResultのコルーチンをスタートする StartCoroutine(chengeResult()); break; // ゲームステートがリザルトの場合 case GameStates.Result: // 何かしらの入力があるとタイトルに戻る if (Input.anyKeyDown) { ScoreInfo.Score = new Score(); SceneManager.LoadScene("MainScene"); } // 一回だけ呼ぶif文 if (onceDispScore < 1) { SGraph.StartGraph(); onceDispScore++; // 評価を表示させる ResultController.Instance.Param(); // スコアを表示させる dispScore(); } break; } }