UnityのDropDown(ドロップダウン)で値を取得出来るようになりました
命の時間ていうカウントダウンアプリを作ろうとしてるんですが、ユーザーから誕生日を入力してもらう必要があるので、HTMLでいうところのセレクトタグを設けようと思いました。これUnityだとドロップダウンメニューっていうらしいですね。
んで、いつものごとくやり方が分からないので、ググること山の如しですよ。Unityブログの2強ともいえるお二人が書いてらっしゃいました。
【Unity開発】uGUIのDropDownの使い方【ひよこエッセンス】 - Unity5(C#)初心者・入門者向けチュートリアル ひよこのたまご
【Unity】uGUIドロップダウンメニュー(コンボボックス)の使い方 - テラシュールブログ
基本的な使い方はここを参考にすればいいと思うのですが、自分でハマったポイントが2つあります。
① 文字がぼやける(滲む)
例えばタイトル画面みたいな動かない画面を作るときって、僕はいつもキャンバスを置いて、画面サイズを750*1334にするんですが、そうやってからドロップダウンを置くと、文字がぼやけて表示されました。
これOptionAって書いてるんですけど、全然分からないですよね。
「UnityではじめるC」って本の中で、脱出ゲームの作り方を紹介しているんですが、その中にこのやり方があるんですよ。キャンバス置いてっていう。
てかこの本で紹介されてる脱出はそうやって作っています。
いつもこのやり方をしていたんですが、今回はこれじゃダメでした。
キャンパスを先におかずに、ドロップダウンを最初に作れば、普通に表示されました。とりあえずこれでOKってことにしています。
② 値の取得の仕方が分からない
よく読めば上記したひよこさんのブログに書いてあるんですが、適当に読んでたせいか、値の取得の仕方が分かりませんでした。ドロップダウンの。
とりあえずこんなコードを書けばOK。
public void OnValueChanged(Dropdown dropdown){
Debug.Log(dropdown.value);
}
これをドロップダウンに設定すれば、値を取得することが出来ます。Dropdown dropdownってところが分からなかったんですよね。int resultみたいな引数を指定していたので、全然取得できずに迷走してしまいました。
詳しくはひよこさんの記事に書いてますので、ご存知でない方は参考にしてみてください。下の方にありますよ。
以上、UnityのDropDown(ドロップダウン)で値を取得出来るようになりましたって話でした。