おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

【Unity】複数のターン制バトルの大まかなプログラム。

   f:id:bookreadkun:20190105104222p:plain

おはようございます。おーみんです。

 

現在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ボタンで回復魔法などを取り入れるのも良さそうですね。

 

f:id:bookreadkun:20190105103701j:image

 

エラーも出ずにしっかりと機能しています。

 

これからこのswitch文の各case部分に細かなプログラムを書いていこうと思います

 

また完成したらブログに載せますね!