[UNITY]2DRPG開発日誌 #31 複数のEventTriggerをスクリプトから登録する方法

EventTriggerをスクリプトから登録する…何個も。

結論だけ書くと、EventTriggerを登録する際はEventTrigger.Entryからtrigger.triggers.Add()までがセットになります。書き方はこうです。

//イベントトリガーコンポーネントを取得
EventTrigger trigger = buttonObject.GetComponent<EventTrigger>();

//フォーカスのトリガー1を設定
EventTrigger.Entry entry1 = new EventTrigger.Entry();
entry1.eventID = EventTriggerType.Select;
entry1.callback.AddListener((data) => { hoge1(); });
trigger.triggers.Add(entry1);

//フォーカスのトリガー2を設定
EventTrigger.Entry entry2 = new EventTrigger.Entry();
entry2.eventID = EventTriggerType.Select;
entry2.callback.AddListener((data) => { hoge2(); });
trigger.triggers.Add(entry2);

//フォーカスのトリガー3を設定
EventTrigger.Entry entry3 = new EventTrigger.Entry();
entry3.eventID = EventTriggerType.Select;
entry3.callback.AddListener((data) => { hoge3(); });
trigger.triggers.Add(entry3);

//フォーカスが外れたトリガーを設定
EventTrigger.Entry entry4 = new EventTrigger.Entry();
entry4.eventID = EventTriggerType.Deselect;
entry4.callback.AddListener((data) => { hoge4(); });
trigger.triggers.Add(entry4);

//決定のトリガーを設定
EventTrigger.Entry entry5 = new EventTrigger.Entry();
entry5.eventID = EventTriggerType.Submit;
entry5.callback.AddListener((data) => { hoge5(); });
trigger.triggers.Add(entry5);

//キャンセルのトリガーを設定
EventTrigger.Entry entry6 = new EventTrigger.Entry();
entry6.eventID = EventTriggerType.Cancel;
entry6.callback.AddListener((data) => { hoge6(); });
trigger.triggers.Add(entry6);

おしまい!