上を下に置き換える。
使い方
配列のフィールド属性にEnumLabelを付けるだけ。引数はtypeof(enumの型)。ソースコード
配列要素のlabelの「Element 0」の数字部分をパースして対応するenumに置き換えているだけ。問題点
sizeの入力を縛っていないので、enumの定義数と配列の要素数に関係がありません。要素数がenumの定義より多い場合はこうなります。
PropertyDrawer.OnGUIの引数のpropertyで取れるのが配列要素のpropertyなので、配列全体のGUIを制御することができずこの実装となりました。
配列やリスト全体の表示を描き換える方法ってないんですかね?
2017/12/23追記
コメントにて指摘をいただきましたので反映いたしました。ありがとうございます!EditorGUILayout#PropertyField()はbool値で子要素を展開するかを指定できるようです。常にtrueでいいような...
ちなみにこの記事の内容は古くて最新のUnityに対応しているかはわかりません。ちゃんと動作させた環境の情報は書こうな...
初めまして。便利な拡張なので使わせていただいています。
返信削除43行目の
EditorGUI.PropertyField(position, property, new GUIContent(attr.EnumNames[index]));
ですが、このままだとSerializableした自作クラスを表示する際に、中身が表示されないので、
EditorGUI.PropertyField(position, property, new GUIContent(attr.EnumNames[index]), true); //最後尾に引数を追加
したほうがよいかと思います。