イベントトリガー
4 分
EventTriggerはUnity EventSystemからイベントを受け取り、登録された関数を呼び出します。
ZEPETOScriptでUnity EventTriggerを使用するには、以下のフォーマットに従う必要があります。
まず、テストのために、UI > パネルをシーンに追加します。

追加したパネルのインスペクタで[コンポーネントを追加]をクリックし、Event Triggerコンポーネントを追加します。

サンプルスクリプト
まず、EventTriggerに関連するクラスをインポートします。
import { EventTrigger, EventTriggerType } from 'UnityEngine.EventSystems';
import { Entry } from 'UnityEngine.EventSystems.EventTrigger';EventTriggerを委譲するためのコードを書きます。委譲を通じて、コールバックメソッドを定義し、他のメソッドを代理で呼び出すことができます。
👍 デリゲートの概念
- デリゲートは関数ポインタの一種と見なすことができ、関数を参照して呼び出すことができるオブジェクトです。
- 変数のように関数を渡したり返したりでき、他の関数にパラメータとして渡すこともできます。
- Unityでは、デリゲートはイベント処理に広く使用されています。たとえば、特定のイベントが発生したときに自動的に呼び出されるようにメソッドをデリゲートに接続できます。
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { EventTrigger, EventTriggerType } from 'UnityEngine.EventSystems';
import { Entry } from 'UnityEngine.EventSystems.EventTrigger';
export default class EventTriggerSample extends ZepetoScriptBehaviour {
Start() {
const trigger = this.gameObject.GetComponent<EventTrigger>();
// Create eventsystem entry
const entry = new Entry();
// Specify event type & delegation
entry.eventID = EventTriggerType.PointerClick;
entry.callback.AddListener(() => {
console.log("click")
});
// Register event entry
trigger.triggers.Add(entry);
}
}
以下に示す画面を参照してください。

イベントトリガーの完全なコード例を確認してください。
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { EventTrigger, EventTriggerType } from 'UnityEngine.EventSystems';
import { Entry } from 'UnityEngine.EventSystems.EventTrigger';
export default class EventTriggerSample extends ZepetoScriptBehaviour {
Start() {
const trigger = this.gameObject.GetComponent<EventTrigger>();
// Create eventsystem entry
const entry = new Entry();
// Specify event type & delegation
entry.eventID = EventTriggerType.PointerClick;
entry.callback.AddListener(() => {
console.log("click")
});
// Register event entry
trigger.triggers.Add(entry);
}
}
Unityがサポートするイベントの種類やEventTriggerについては、以下のリンクをクリックして詳しく学ぶことができます。
📘 サポートされているイベント https://docs.unity3d.com/kr/current/Manual/SupportedEvents.html