かさたな日記

主にUnityを使った制作記録。書いてる人は初心者です。一緒に頑張ろう。

自分用Unityメモ:EventTriggerにスクリプトからEventを追加する

EventTriggerもButtonなどと同じように
スクリプト側からEventを追加することができます。
ただ少しやり方が異なるのでメモしておこうと思います。

using UnityEngine.EventSystems; //この名前空間が必要です
~~~~~

 public void AddEventSample()
 {
           EventTrigger currentTrigger = AddComponent<EventTrigger>();
           currentTrigger.triggers = new List<EventTrigger.Entry>();
           //↑ここでAddComponentしているので一応、初期化しています。
           
           EventTrigger.Entry entry = new EventTrigger.Entry();
           entry.eventID = EventTriggerType.PointerClick; //PointerClickの部分は追加したいEventによって変更してね
           entry.callback.AddListener( (x) => OnClick() );  //ラムダ式の右側は追加するメソッドです。

           currentTrigger.triggers.Add(entry);
            
 }

 public void OnClick()
 {
          Debug.Log("クリックされたよ")
  }

追加したEventをあとで消したいという場合は
entryをフィールドにしておいて
currentTrigger.triggers.Remove(entry);
で、消すことが出来るはずです。

注意点として、この方法で追加したeventはインスペクタに表示されません。
表示されないケド、動くから大丈夫...のハズ。