Unityな日々(Unity Geek)

Unityで可視化アプリを開発するための試行錯誤の覚書

インスペクタでプルダウンリストを使う

インスペクタにプルダウンリストを表示するには、enumを使う。

たとえば、iTweenプラグインのイージングタイプをプルダウンリストで指定するには、

public enum EaseType {
        easeInQuad,
        easeOutQuad,
        easeInOutQuad,
        easeInCubic,
        easeOutCubic,
        easeInOutCubic,
        easeInQuart,
        easeOutQuart,
        tQuart,
        easeInQuint,
        easeOutQuint,
        easeInOutQuint,
        easeInSine,
        easeOutSine,
        easeInOutSine,
        easeInExpo,
        easeOutExpo,
        easeInOutExpo,
        easeInCirc,
        easeOutCirc,
        easeInOutCirc,
        linear, 
        spring,
        easeInBounce,
        easeOutBounce,
        easeInOutBounce,
        easeInBack,
        easeOutBack,
        easeInOutBack,
        easeInElastic,
        easeOutElastic,
        easeInOutElastic
    }
    [SerializeField] EaseType easeType = EaseType.easeOutQuart;

のように書けばいい。

public enum..enumクラス("EaseTyp")を定義し、EaseType easeTypeでそのクラスの変数を定義している。

インスペクタには次のように表示される。

f:id:yasuda0404:20150306202549p:plain

ところで、enumの実態は配列のIndex番号の整数なので「演算」ができる。たとえば、

Debug.Log("EaseType.easeInBounce "+(EaseType.easeInBounce+1)); //'easeOutBounce' を出力

となる。

これはこれで便利なのだが、iTweenのイージングタイプのように、文字列(string)変数として使いたい場合もある。

この解決策は、ToString()メソッドを使うこと。

string easetype = easeType.ToString();   //文字列に変換

とすれば、"easeInBounce"などの文字列を得ることができる。