敵の移動方法を考えて、事前に種類として enum の列挙子に登録を行っておきます。
これは参考事例です。
今回は enum のみのスクリプトとして作成しています。
enum のみのスクリプトは、
MonoBehaviour クラスの継承がありませんので、ゲームオブジェクトに依存しません。つまり、
アタッチできません。
ですが、スクリプトを作成した段階で、すべてのスクリプト内で自由に宣言して利用することができます。
enum ではゲーム内に登場させたい種類の情報を、列挙子(れっきょし)という形で種類を作成できます。
今回はエネミーの移動の種類という情報を
EnemyMoveType という名前で作成し、その中に
エネミーの移動の種類 を登録しておきます。
これは追加可能な情報ですので、先々に
敵の移動の種類が増えても対応できます 。
EnemyMoveType.cs
<= クリックすると開きます。
/// <summary>
/// エネミーの移動方法の種類
/// </summary>
public enum EnemyMoveType {
Agent,
Boss_0,
Boss_1
}
スクリプトを作成したらセーブします。
3つ以上の情報を管理する場合には、enum でその種類を登録しておくことをおすすめします。
enum を利用する場合、その登録してある列挙子からしか情報を指定できませんので、
例えば、文字列と異なり、指定に際して打ち間違えが発生しませんので、不備の値が入ることも防ぐことが出来ます。
ゲームの内容に応じた enum を考えて作成して運用します。
プレイヤーの状態用(毒、混乱、痺れとか)、アイテムの種類(消耗品、武器、防具、など)、
ゲームの状態管理(ゲーム開始前、ゲーム中、ゲーム終了)など、
非常に応用が利く機能です。
なお enum では
各列挙子に自動的に整数の番号が与えられます 。
一番上から 0 で連番になっています 。
今回の場合であれば、Agent には 0、Boss _1 には 2 の数字が与えられています。
この番号は見えない情報ですが、
列挙子を int 型にキャストを行うことで取得して利用出来ます。
下記の例の場合、enumValue には 1 が代入されます。
<enum の列挙子のキャスト>
int enumValue = (int)EnemyMoveType.Boss_0;
また、列挙子の宣言時に数字を指定して代入することも可能です。その場合には連番ではなく、指定した数値を取得出来ます。
<数字の代入の例(今回この方式は利用しません)>
EnemyType.cs
public enum EnemyMoveType {
Agent = 10,
Boss_0 = 5,
Boss_1 = 100
}
上記のように代入されている場合には、列挙子を int 型にキャストすると、代入してある値が取得出来ます。
今回は数字の代入は行っていませんので一番上の列挙子には 0 から順番に採番されています。