DropDown(ドロップダウン)使用時につまずいた点
こんにちは。とーらいです。
先日自作アプリの「片面けんだま」を英語対応しました。
その際、UGUIのDropDownを使用したのですが、いくつか引っかかった点があったので、シェアしたいと思います。
選択したとき、Scriptを呼び、valueの値をわたす
Dropdownでは項目ごとに値がふられています。
項目が選択されたとき、OnValueChangedに設定されたメソッドが呼び出されますが、ここでひとつ注意点があります。
例えば、項目が選択されたとき、下のCallメソッドが呼び出されるようにします。
public void Call(int num) { Debug.Log(num); }
この時、インスペクター上のOnValueChangedの項目から設定をしますが、static parametersのCallを選択するとvalueの値が動的に渡せません。
そのため、渡されるvalueの値が常に同じになります。
valueの値を渡したいときはDynamic intのCallを選択してください。
OnValueChangedが呼ばれるタイミング
DropDownでは、初期状態で選択されている項目は、一番上の項目になっています。
場合によっては、最初に選択されている項目を一番上以外にしたいかもしれません。
そんな時は、Awake()内または、Start()でvalueの値を変更します。
public Dropdown dropdown; private void Start() { dropdown.value = 1; }
ここで注意が必要なのが、スクリプトからvalueの値を変更した時にも、OnValueChangedが呼び出される点です。
イメージ的には、画面上で項目を選択した時にだけ呼び出されるような気がします。
しかし、その名の通りvalueの値が変更されたら常に呼び出されるので、想定していないところで、呼び出さないよう注意してください。
僕がDropDownを使っていてつまずいた点は以上です。
それでは。
最近のコメント