/* * ================================================ * ゲームメインループ * ================================================ */ //メインループのコルーチン IEnumerator MyUpdate() { /* 初期化(読み込み処理) */ // Startの内部処理にはしない。 // (他オブジェクトのStartより後に呼ばれることを保証するべき) yield return(BattleInit()); /* キー入力を待つ(戦闘開始前に) */ yield return(Utility._Wait.WaitKey()); int battleResult; while (true) { /* 行動できるキャラが出てくるまで CTB を進行 */ yield return(DecideNextActionCharacter()); /* 行動可能キャラクターをカウントし、実際のアクションを行う*/ yield return(PlayAction()); yield return(AfterAction()); /* 終了判定 */ battleResult = CheckFinish(); if (battleResult != 0) { break; } } /* 勝敗表示 */ yield return(Utility._Wait.WaitFrame(60)); if (battleResult == 1) { yield return(BattleResult.ResultWinScene(cd, canvas)); } else { yield return(BattleResult.ResultLoseScene(cd, canvas)); } yield return(BattleResult.ResultFadeout(canvas)); /* 戦闘終了時に行うべき処理をまとめる */ BattleEnd(); /* 戦闘が終わったので元のマップに返す */ yield return(Utility._Scene.MoveScene(party.nowScene, Variables.BackGround.black, 60)); }