【C#】enum列挙型 : 使用例
使用例1
//enumの名前でtypeなどを使うと、プラグインなどの変数名とかぶる可能性あり public enum CollectionType { ITEM, HOSTAGE, BANDIT, } public class GalleryController : MonoBehaviour { public CollectionType type; public static GalleryController instance = null; void Awake(){ if(instance == null) { instance = this; } } void AddChild(int i, CollectionType type, Sprite sprite){ GameObject GalleryChild = Instantiate(ChildPrefab) as GameObject; if(type == CollectionType.ITEM) GalleryChild.transform.SetParent(ListParent.transform); if(type == CollectionType.HOSTAGE) GalleryChild.transform.SetParent(ListParentHS.transform); if(type == CollectionType.BANDIT) GalleryChild.transform.SetParent(ListParentBN.transform); } }
使用例2
using UnityEngine; using System.Collections; using UnityEngine.UI; public class GameOver : MonoBehaviour { public GameObject ReasonText; public enum Reason { TIMELIMIT, BOMB, MISTAKESHOOT, SHOOTED, } public Reason reason; public static GameOver instance = null; void Awake(){ if(instance ==null){ instance = this; } } void Update () { GameOverReasonText(); } void GameOverReasonText(){ if(reason == Reason.TIMELIMIT){ ReasonText.GetComponent<Text>().text = "Time Limit. Polisi ditangkap"; } if(reason == Reason.BOMB){ ReasonText.GetComponent<Text>().text = "Misi gagal... Kena bomb. Polisi ditangkap"; } if(reason == Reason.MISTAKESHOOT){ ReasonText.GetComponent<Text>().text = "Misi gagal... Salah tembak. Polisi ditangkap"; } if(reason == Reason.SHOOTED){ ReasonText.GetComponent<Text>().text = "Misi gagal... Ditembak. Polisi ditangkap"; } } } // 他のスクリプトから呼ぶ // 以下のように呼び出す。 GameOver.instance.reason = GameOver.Reason.MISTAKESHOOT;
使用例3
public enum UIType{ MainMenu, Gallery , Credits } public class MenuController : MonoBehaviour { //UIタイプ(何かUIで区別したいときに) public UIType uiType; }
使用例4
const int MODE_EASY = 0; const int MODE_NOLMAL = 1; const int MODE_DIFFICULT = 2; const int MODE_A; const int MODE_B; int mode = 0; if (mode == MODE_EASY){ // 内容 }
enumを使って書くことができる。
列挙型という「型」になる。
enum Mode { MODE_EASY; MODE_NORMAL; MODE_DIFFICULT; } // 使うときにmodeと書く必要がある。 // どの範囲が限られている。 // enumでない場合だと、どこまでがmodeなのかわからなくなってくる。 Mode m = Mode.MODE_DIFFICULT; if(m == Mode.MODE_DIFFICULT){ // 内容 }