Enumとは?
列挙型(Enum)とは、名前がついた定数の集まりです。
曜日など、特定の値しか取らないデータを何度も使うときに便利な変数型で、多くの場合switch文と組み合わせて使われます。
曜日をEnumで定義する例
例えば、曜日をEnumを使って定義するならこのようになります。
enum Day
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
Day day = Day.Sunday;
Monday〜Sundayの定数を集めた曜日の列挙型Dayを定義しています。
宣言したenumはデータ型として使用できるので、Day型で宣言した変数dayにSundayを代入することができます。
Enumを使うメリット
Enumを使うことで、プログラム内のデータが管理しやすくなるメリットがあります。
ゲーム制作の場合だと、ゲームでは「状態」を管理するケースがよくあります。
「状態」はプレイヤーの状態ステータス(毒、麻痺、石化など)だったり、キャラクターのジョブ(勇者、戦士、魔法使いなど)だったりします。
これらの「状態」は一つづつ変数で定義しても問題はありませんが、プログラムが読みにくくなり不便な面があります。
Enumを使うことで、ゲーム内のデータが管理しやすくなるので便利ですよ!
簡単な使用例
キャラクターのステータス状態(毒、麻痺、石化、通常状態)を管理する例を見てみましょう。
Unityを使う場合を想定して書いています。
Enumを使わず変数で書いた例
まず、Enumを使わず変数で書いたコードを見てください。
using UnityEngine;
public class StatusCondition : MonoBehaviour
{
int condition = 1;
void Start()
{
switch (condition)
{
case 0:
Debug.Log("毒状態");
break;
case 1:
Debug.Log("麻痺状態");
break;
case 2:
Debug.Log("石化状態");
break;
default:
Debug.Log("通常状態");
break;
}
}
}
// 出力結果:麻痺状態
この例では、int conditionが0か1か2かそれ以外でそれぞれに対応する状態異常に振り分けています。
これでも問題はありませんが、状態異常の種類が多くなると「2番は何状態だったっけ?」と混乱しやすいです。
Enumを使って書いた例
そこで、Enumを使って書き換えるとこのようになります。
using UnityEngine;
public class StatusCondition : MonoBehaviour
{
public enum Condition
{
Poisoned,
Paralyzed,
Stoned
}
Condition condition = Condition.Paralyzed;
void Start()
{
switch (condition)
{
case Condition.Poisoned:
Debug.Log("毒状態");
break;
case Condition.Paralyzed:
Debug.Log("麻痺状態");
break;
case Condition.Stoned:
Debug.Log("石化状態");
break;
default:
Debug.Log("通常状態");
break;
}
}
}
// 出力結果:麻痺状態
この例では、
public enum Condition
{
Poisoned,
Paralyzed,
Stoned
}
で3つの状態異常をenumとして定義し、
Condition condition = Condition.Paralyzed;
でCondition型で宣言した変数conditionにParalyzedを代入しています。
このように、数字ではなく名前で指定して状態を管理できるので、混乱が少なく便利です。
おすすめ書籍
C#を学びたい初心者の方におすすめの書籍をご紹介します。実際に私が購入して良かった本です。
C#の絵本
「いちばんやさしいC#の入門書」と帯にありましたが、とてもわかりやすくC#の全体をざっくり学べる本です。
絵本という通り、イラストで解説してくれているので、オブジェクト指向などイメージしにくい概念も理解しやすくなっています。
プログラミング初心者の私でも読みやすい本でした!
確かな力が身につくC#「超」入門
もう少ししっかり学びたい方にはこちらの本がおすすめです。
C#プログラムの書き方の基本からオブジェクト指向まで、やさしい文章とたくさんのイラストで丁寧に解説されています。
プロジェクトの新規作成からスクリーンショット付きでわかりやすく説明されていて、Windowsアプリケーション作成や練習問題を通してC#の基本を身につけることができます。
Unity本のベストセラー、「Unityの教科書」と同じ著者の本で、どちらも大変わかりやすいです。
ゲームをイメージしたプログラミング例もあるので
ゲーム制作をしたい方にもおすすめです
おすすめUnity本「Unityの教科書」はこちらから
まとめ
今回はゲーム制作に便利な列挙型(Enum)を紹介しました。
わかりやすいコードにしておくと、後から管理しやすいのでおすすめですよ!
配列すら使わずほぼ変数のみでゲーム作って後から管理が地獄になった私です…
少しでも皆様の制作の助けになれば幸いです、それでは!