はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】列挙型のメンバの名前を取得する方法

はじめに

今回は列挙型のメンバの名前を取得する方法についての記事になります!

例えば以下のような列挙型を考えてみましょう。

public enum 年号
{
    大正, 昭和, 平成, 令和
}

これは内部的にはint型で順番に0,1,2,3と扱われています。

しかし、数字ではなく平成や令和といった名前を取得したいときもあるのではないでしょうか。

それについて今回は掘り下げてみましょう。

やり方

やり方はシンプルで、Enum.GetNameメソッドを使えばできます。

using UnityEngine;
using System;       //これを忘れずにつける

public enum 年号
{
    大正, 昭和, 平成, 令和
}

public class EnumTest : MonoBehaviour
{
    private void Start()
    {
        年号 nengou = 年号.平成;
        string heisei = Enum.GetName(typeof(年号), nengou);
        Debug.Log(heisei);                                  //平成

        //年号列挙体のメンバの名前を列挙する
        foreach(var item in Enum.GetNames(typeof(年号)))
        {
            Debug.Log(item);                                //大正 昭和 平成 令和
        }
    }
}

さいごに

列挙型のメンバの名前の取得方法を紹介しました。

分かりやすいかなと思い日本語で列挙型を定義してみましたが、めちゃめちゃ違和感がありますね。普通に英語で書いたほうが良かったかもしれません。