---
title: イベントトリガー
slug: world-sdk-guide-ja/ylZhL-7Uqf7Z7zkE1Od3G
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

EventTriggerはUnity EventSystemからイベントを受け取り、登録された関数を呼び出します。

ZEPETOScriptでUnity EventTriggerを使用するには、以下のフォーマットに従う必要があります。

まず、テストのために、UI > パネルをシーンに追加します。

::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-TWCfIp1gFAkNXaqWNG7ta-20240904-102419.png" size="54" width="634" height="1100" position="center" showCaption="false"}



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

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-kowTbqgz-BU4oqeKjk0pu-20240904-102419.png)



## サンプルスクリプト

まず、EventTriggerに関連するクラスをインポートします。

:::CodeblockTabs
TypeScript

```typescript
import { EventTrigger, EventTriggerType } from 'UnityEngine.EventSystems';
import { Entry } from 'UnityEngine.EventSystems.EventTrigger';
```
:::

EventTriggerを委譲するためのコードを書きます。委譲を通じて、コールバックメソッドを定義し、他のメソッドを代理で呼び出すことができます。

:::hint{type="success"}
**👍 デリゲートの概念**

- デリゲートは関数ポインタの一種と見なすことができ、関数を参照して呼び出すことができるオブジェクトです。
- 変数のように関数を渡したり返したりでき、他の関数にパラメータとして渡すこともできます。
- Unityでは、デリゲートはイベント処理に広く使用されています。たとえば、特定のイベントが発生したときに自動的に呼び出されるようにメソッドをデリゲートに接続できます。
:::



:::CodeblockTabs
TypeScript

```typescript
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);
 
    }
}
```
:::



以下に示す画面を参照してください。

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-O0O3hwH_bVE4NRbl2UvZC-20240904-102419.png)



イベントトリガーの完全なコード例を確認してください。

:::CodeblockTabs
EventTriggerSample

```typescript
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については、以下のリンクをクリックして詳しく学ぶことができます。

:::hint{type="info"}
**📘 サポートされているイベント**
[https://docs.unity3d.com/kr/current/Manual/SupportedEvents.html](https://docs.unity3d.com/kr/current/Manual/SupportedEvents.html)
:::

:::hint{type="info"}
**📘 EventTrigger**
[https://docs.unity3d.com/kr/530/ScriptReference/EventSystems.EventTrigger.html](https://docs.unity3d.com/kr/530/ScriptReference/EventSystems.EventTrigger.html)
:::

