uGUIへユーザが操作した際にメソッドを呼び出すのとは逆に、スクリプトからUIの状態やパラメータを変更したい場合もある。代表的な例を下にあげる。
テキスト
uGUIのテキストを変更するには、テキストGameObjectのText
コンポーネントを取得し、このText.text
プロパティを変更すればよい。
サンプルスクリプトは次。
ポイントは、UnityEngine.UI
ネームスペースを追加すること!
using UnityEngine; using UnityEngine.UI; public class Example : MonoBehaviour { [SerializeField]Text btnText; [SerializeField]Toggle toggle; [SerializeField]Slider slider; private bool isOn = false; REIPacket packet=new REIPacket(); public void OnOff() { isOn = !isOn; if(isOn) { btnText.text = "On"; toggle.isOn = true; slider.value = 1.0f; slider.Select(); } else { btnText.text = "Off"; toggle.isOn = false; slider.value = 0.0f; toggle.Select(); } }
トグル(チェックボックス)状態
Toggleコンポーネントのbool isOn
を変更する。
スライダの値
Sliderコンポーネントのvalue
を変更する。
フォーカス(共通)
各UIコンポーネントの.Select()
メソッドを呼ぶ。該当UIにフォーカスが移り、その他はフォーカスが外れる。
※注)ゲームコントローラやキーボードからの操作を可能にするよう、EventSystemのFirst Selected
に、最初にハイライトするUI要素を設定しておくこと!