【ゲーム制作】配列と構造体どっちを使えばいい? ステータスやストーリーを管理したい

【ゲーム制作】配列と構造体どっちを使えばいい? ステータスやストーリーを管理したい

 Unityなどでゲーム制作をしていて多くの人が悩むのは敵キャラクターのHPや攻撃力をどう管理すれば良いのかという点です。今回はゲーム制作初心者の方でもわかりやすいようにC#を元に配列と構造体のメリットとパラメータを管理する方法についてもお話していきますので、最後までお付き合いください。

配列と構造体

配列とは?

 int型やchat型など、1つの変数で同じ型をいくつも格納できるのが配列です。

構造体とは?

 複数の型を1つの型として定義できるのが構造体です。

 名前を格納したいString型・体力と攻撃力を定義したいfloat型を1つの型として定義できます。

結論:構造体の配列を作成するのが最強

 例えば、敵の情報を管理する構造体を作りたいとします。

 しかし、敵の数だけ構造体を定義するのはメンテナンス性が悪いですよね。

 C#にはリストという便利な配列の機能があります。ソースコードを参考に自分で作ってみてください。

//敵を格納する構造体
    public struct ENEMY
    {
        public string name;
        public string info;
        //ステータス
        public float HP_now;
        public float HP;
        public float STR;
        public float INT;
        public float DEF;
        public float RES;

    }

//敵の構造体を格納するリスト
    public static List<ENEMY> enemy = new List<ENEMY>();

 こうすることでリストに敵の情報を格納できるようになりましたね。

 後は敵の情報を追加していくだけです。

//一時記憶用の構造体を定義
ENEMY ene = new ENEMY();

ene.name = "敵";
ene.info = "敵の情報";
ene.HP = 10;
ene.HP_now = ene.HP;
ene.STR= 3;
ene.INT = 1;
ene.DEF = 1;
ene.RES = 2;

//リストに追加
enemy.Add(ene);

 この時、敵が増える度にAddで書かないとだめならリストを使い意味ないじゃんと思いませんか?

 実は、エクセルやメモ帳に敵の情報を記入するだけで自動的にリストに追加させることができるのです!

 その方法をこちらの記事で紹介しているので読んでみてください。

【Unity C#】コピペでできる! CSVファイルを読み込んで配列やリストに追加させる方法