Unity - AddListener:Button のイベントリスナーをスクリプトから設定する -
初めに
UnityEvent.AddListener についてまとめます。これを使うと Button のイベントリスナーをスクリプトから設定できます。
AddListener について
Button はいままでは Inspector から関数を設定していました。AddListener を使えばスクリプトから設定できるため、シーンの途中で設定されている関数を変えたり、複数の Button の関数をスクリプトから一気に設定したりできます。
AddListener を使って Button の関数を設定する
今回は Button が押されたら Text が変わるような関数を設定します。
- スクリプトを用意する
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //Button, Text を使うため追加 public class AddListenerScript : MonoBehaviour { //Button, Text の取得 public GameObject button; private GameObject buttonText; Button btn; void Start() { buttonText = button.transform.Find("Text").gameObject; btn = button.GetComponent<Button>(); //AddListenerを使って関数を設定する btn.onClick.AddListener(onClickButton); } //Buttonが押されたときの関数 void onClickButton() { Text text = buttonText.GetComponent<Text>(); text.text = "おされたよ"; } }
- スクリプトを Button に付け、Button を取得する
(実行)
注意点
AddListener を使って関数を設定した状態でも Inspecter から onClick の関数が設定できてしまいます。AddListener を使う場合は onClick は設定しないようにしましょう。
最後に
Button を10 個以上使う場合などでは、AddListener を使うと格段に楽になります。普段から AddListener を使っておくことをおすすめします。