---
title: 事件触发器
slug: world-sdk-guide-ch/jIX3Sxefsx4szg1fsX1Rv
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

事件触发器接收来自Unity事件系统的事件并调用注册的函数。

要在ZEPETOScript中使用Unity事件触发器，您必须遵循以下格式。

首先，为了测试目的，将UI > 面板添加到场景中。

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



在添加的面板的检查器中点击\[添加组件]，并添加事件触发器组件。

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



## 示例脚本

首先，导入与事件触发器相关的类。

:::CodeblockTabs
TypeScript

```typescript
import { EventTrigger, EventTriggerType } from 'UnityEngine.EventSystems';
import { Entry } from 'UnityEngine.EventSystems.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>();
 
        // 创建事件系统条目
        const entry = new Entry();
 
        // 指定事件类型和委托
        entry.eventID = EventTriggerType.PointerClick;
        entry.callback.AddListener(() => {
            console.log("点击")
        });
 
        // 注册事件条目
        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)
:::

