【Unity】複数のターン制バトルの大まかなプログラム。
おはようございます。おーみんです。
現在UnityでRPGを作成中です。
今回の記事ではFFやドラクエなどでよく見られるターン制バトルのプログラムについて解説していこうと思います。
これ正直結構難しかったです(笑)
僕の場合は味方3人、敵1人という構成なのですが、色々な記事を探しても1vs1のターン制バトルしか解説しておらず参考になりませんでした。
色々試行錯誤した結果、このプログラムならいけそうだ!となったのでここに紹介したいと思います。
まずはプログラムから。
---------
void Update() {
if(zombieHP > 0){
Input.GetKeyDown(Keycode.P){
switch(turn){
case 1:
Debug.Log("apple");
turn++;
break;
case 2:
Debug.Log("Player");
turn++;
break;
case 3:
Debug.Log("max");
turn++
break;
case 4:
Debug.Log("zombie");
turn = 1;
break;
}
}
}
}
---------
(今回は大まかな構成なので詳細のプログラムは省いています。)
味方キャラはapple、Player、max、敵キャラはzombieとなります。
if文で敵キャラのHPが0でなければInput.GetKeyDown文を実行します。
文の都合上、ここには書いていませんが、プログラムの最初の方でn=1と定義しています。
攻撃順は決まってしまいますが、まあ単純なターン制のバトルにはなるでしょう。今回はPボタンを押すと攻撃する仕組みになっていますが、この後にelse if文でOボタンで魔法攻撃、Lボタンで回復魔法などを取り入れるのも良さそうですね。
エラーも出ずにしっかりと機能しています。
これからこのswitch文の各case部分に細かなプログラムを書いていこうと思います
また完成したらブログに載せますね!