Unity勇者の冒険の書

Unityで学んだことや便利なものなど作ったら紹介します

【Unity勇者の奮闘記】スクリプトのEnumをUIのドロップダウンに設定する

お久しぶりです。

今回は、Inspectorを使ってDropDownを設定するのではなく、EnumをそのままDropDownに設定する方法を書いていきたいと思います。

普通にDropDownを作成

Unityのドロップダウンを使うとき、設定するのが大変ですよね。

試しにドロップダウンを使ってみたいと思います。

普通に作るとデフォルトでこんな感じになっていると思います。

f:id:LightGive:20171006165319p:plain

このOptionA,B,Cのテキストを変更するにはInspectorから変更します。

f:id:LightGive:20171006165336p:plain
デフォルトの設定
f:id:LightGive:20171006165343p:plain
テキスト後

ですが、これがたくさんあって、テキストを変更するとき、面倒ですね。

ですので、スクリプトから設定出来るとスクリプトを書き換えるだけで勝手に変わってくれるので、ちょっと便利です。

一旦、この要素を全て消します。

f:id:LightGive:20171006170349p:plain

スクリプトから要素を追加

このドロップダウンに要素を追加するには、

AddOptions(List)で追加することが出来ます。

//DropDownに表示するStringのリストを作成
List<string> dropDownTextList = new List<string>();
dropDownTextList.Add("テスト1");
dropDownTextList.Add("テスト2");
dropDownTextList.Add("テスト3");

//DropDownの要素にリストを追加
dropDown.AddOptions(dropDownTextList);

再生時にリストがDropDownに追加されました。

f:id:LightGive:20171006171902g:plain

後はEnumをStringのリストにするだけですね。

EnumからListに変換

順番としては、

Enum→Stringの配列→Stringのリスト

の順番で変換していきます。

System.Enum.GetNames(Enum型)でStringの配列に変換することが出来ます。

DropDonwに設定することが出来ました!

f:id:LightGive:20171006173807g:plain

では(^^)/