---
title: ทริกเกอร์เหตุการณ์
slug: world-sdk-guide-th/I8zeZLZL6moH-YBPFSbHc
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

EventTrigger จะรับเหตุการณ์จาก Unity EventSystem และเรียกใช้ฟังก์ชันที่ลงทะเบียนไว้

ในการใช้ Unity EventTrigger ใน ZEPETOScript คุณต้องปฏิบัติตามรูปแบบที่ให้ไว้ด้านล่าง

ก่อนอื่น สำหรับการทดสอบ ให้เพิ่ม UI > Panel ลงใน Scene

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



คลิก \[Add Component] ใน inspector ของ Panel ที่เพิ่มเข้าไป และเพิ่ม Event Trigger component

![](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 ผ่าน delegate คุณสามารถกำหนดวิธีการ callback และเรียกใช้วิธีการแทนผู้อื่นได้

:::hint{type="success"}
**👍 แนวคิดของ Delegate**

- Delegate สามารถมองว่าเป็นประเภทของ function pointer ซึ่งเป็นวัตถุที่สามารถอ้างอิงและเรียกใช้ฟังก์ชันได้
- มันสามารถส่งผ่านหรือคืนฟังก์ชันเหมือนตัวแปร และยังสามารถส่งเป็นพารามิเตอร์ไปยังฟังก์ชันอื่นได้
- ใน Unity, delegate ถูกใช้กันอย่างแพร่หลายสำหรับการจัดการเหตุการณ์ ตัวอย่างเช่น คุณสามารถเชื่อมโยงวิธีการกับ delegate เพื่อให้มันถูกเรียกโดยอัตโนมัติเมื่อเกิดเหตุการณ์เฉพาะขึ้น
:::



:::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)



ตรวจสอบตัวอย่างโค้ดทั้งหมดสำหรับ Event Trigger.

:::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("คลิก")
        });

        // 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)
:::

