void Update() { switch (phase) { case Phase.tellEncountEnemy: if (enemyNameCamera.enabled) { TellEncountEnemy(enemyCreate.LevelConfirm(2)); //絶望のレベルはここで設定 phase = Phase.readyChangeBattleCamera; } break; case Phase.readyChangeBattleCamera: time += Time.deltaTime; if (time > ellapsedTime) { fade.FadeIn(0.5f); time = 0; phase = Phase.changeBattleCamera; } break; case Phase.changeBattleCamera: time += Time.deltaTime; if (time > ellapsedTime - 1.5) { fade.FadeOut(0.5f); enemyNameCamera.enabled = false; battleCamera.enabled = true; time = 0; phase = Phase.battleStart; } break; case Phase.battleStart: //直前準備。プレイヤーとか絶望のパラメータセットとか //プレイヤーがバトルで使えるエネルギー量を更新 if (battleCamera.enabled) { onceFlag = 1; if (onceFlag == 1) { playerEnergyAmount.text = gameProgress.energyCount.ToString(); onceFlag = 2; } } if (!battleCamera.enabled) { onceFlag = 0; } //絶望のパラメータセット //Hp(これを0にしたら勝利) enemyParam.set_Hp(enemyCreate.HpConfirm(enemyParam.Lv)); //Atk(プレイヤーの被ダメ) enemyParam.set_Atk(enemyCreate.AtkConfirm(enemyParam.Lv)); //Def(プレイヤーの与ダメを軽減) enemyParam.set_Def(enemyCreate.DefConfirm(enemyParam.Lv)); //DefeatNumber(一番大きいプレイヤーの与ダメになるやつ) enemyParam.set_DefeatNumber(enemyCreate.DefeatNumberConfirm()); print("DefeatNumber[1]=>" + enemyParam.DefeatNumber[1]); //チェック用のプリント print("DefeatNumber[2]=>" + enemyParam.DefeatNumber[2]); //チェック用のプリント print("DefeatNumber[3]=>" + enemyParam.DefeatNumber[3]); //チェック用のプリント //TimeTillAttack(この時間が経過するたびにプレイヤーを攻撃&DefeatNumber更新&これが切れるときのタイミングで入力あると被ダメ軽減か0) enemyParam.set_TimeTillAttack(5.0f); //戦闘時の「希望」を押せるようにする(ずっとtrueにしてたら、バトル入る前から押してることになってたのでメインでfalseにしている) battleGameEnergyCanvas_mouseInput.enabled = true; phase = Phase.battle_inputOrderFirst; break; case Phase.battle_inputOrderFirst: // 1/3つ目を保持する getEnergyID[1] = battleGameEnergyCanvas_mouseInput.GetEnergyID(); inputEnergyID[1] = getEnergyID[1]; if (inputEnergyID[1] > 0) { //押された希望がDefeatNumberのどれかかどうかでマテリアルを変える DefeatNumberCheckAndChangeMaterial(inputEnergyID[1]); //押された希望が正しいDefeatNumberの順番かどうかチェック if (inputEnergyID[1] == enemyParam.DefeatNumber[1]) { correctOrder += 1; } phase = Phase.battle_inputOrderSecond; } break; case Phase.battle_inputOrderSecond: // 2/3つ目を保持する getEnergyID[2] = battleGameEnergyCanvas_mouseInput.GetEnergyID(); if (inputEnergyID[1] != getEnergyID[2] && getEnergyID[2] > 0) { inputEnergyID[2] = getEnergyID[2]; //押された希望がDefeatNumberのどれかかどうかでマテリアルを変える DefeatNumberCheckAndChangeMaterial(inputEnergyID[2]); //押された希望が正しいDefeatNumberの順番かどうかチェック if (inputEnergyID[2] == enemyParam.DefeatNumber[2]) { correctOrder += 1; } phase = Phase.battle_inputOrderThird; } break; case Phase.battle_inputOrderThird: // 3/3つ目を保持する getEnergyID[3] = battleGameEnergyCanvas_mouseInput.GetEnergyID(); if (inputEnergyID[2] != getEnergyID[3] && inputEnergyID[1] != getEnergyID[3] && getEnergyID[3] > 0) { inputEnergyID[3] = getEnergyID[3]; //押された希望がDefeatNumberのどれかかどうかでマテリアルを変える DefeatNumberCheckAndChangeMaterial(inputEnergyID[3]); //押された希望が正しいDefeatNumberの順番かどうかチェック if (inputEnergyID[3] == enemyParam.DefeatNumber[3]) { correctOrder += 1; } phase = Phase.batlle_inputOrderEnd; } break; case Phase.batlle_inputOrderEnd: if (correctOrder == 3) { correctOrder = 0; print("ただしい順番で希望をおしたぞ!correctOrder=>" + correctOrder); DecreaseEnemyHpBigDamage(); } else { correctOrder = 0; print("correctOrder=>" + correctOrder); } time += Time.deltaTime; if (time > ellapsedTime) { time = 0; for (int i = 1; i < 4; i++) { //希望のマテリアルを全部元にもどしつつ、入力されたIDをリセット battleGameEnergyMaterial[inputEnergyID[i]].material = defaultMaterial; inputEnergyID[i] = 0; getEnergyID[i] = 0; battleGameEnergyCanvas_mouseInput.ResetEnergyID(); } phase = Phase.battle_inputOrderFirst; } break; case Phase.end: break; default: break; } enemyTimeTillAtk.SetActive(true); DecreaseEnemyTimeTillAtk(); }