ทริกเกอร์เหตุการณ์
EventTrigger จะรับเหตุการณ์จาก Unity EventSystem และเรียกใช้ฟังก์ชันที่ลงทะเบียนไว้
ในการใช้ Unity EventTrigger ใน ZEPETOScript คุณต้องปฏิบัติตามรูปแบบที่ให้ไว้ด้านล่าง
ก่อนอื่น สำหรับการทดสอบ ให้เพิ่ม UI > Panel ลงใน Scene

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

ตัวอย่างสคริปต์
ก่อนอื่น ให้นำเข้าคลาสที่เกี่ยวข้องกับ EventTrigger
import { EventTrigger, EventTriggerType } from 'UnityEngine.EventSystems';
import { Entry } from 'UnityEngine.EventSystems.EventTrigger';เขียนโค้ดเพื่อมอบหมาย EventTrigger ผ่าน delegate คุณสามารถกำหนดวิธีการ callback และเรียกใช้วิธีการแทนผู้อื่นได้
👍 แนวคิดของ Delegate
- Delegate สามารถมองว่าเป็นประเภทของ function pointer ซึ่งเป็นวัตถุที่สามารถอ้างอิงและเรียกใช้ฟังก์ชันได้
- มันสามารถส่งผ่านหรือคืนฟังก์ชันเหมือนตัวแปร และยังสามารถส่งเป็นพารามิเตอร์ไปยังฟังก์ชันอื่นได้
- ใน Unity, delegate ถูกใช้กันอย่างแพร่หลายสำหรับการจัดการเหตุการณ์ ตัวอย่างเช่น คุณสามารถเชื่อมโยงวิธีการกับ delegate เพื่อให้มันถูกเรียกโดยอัตโนมัติเมื่อเกิดเหตุการณ์เฉพาะขึ้น
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);
}
}
โปรดดูที่หน้าจอที่แสดงด้านล่างนี้.

ตรวจสอบตัวอย่างโค้ดทั้งหมดสำหรับ Event Trigger.
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 รองรับได้โดยการคลิกที่ลิงก์ด้านล่างนี้.
📘 เหตุการณ์ที่รองรับ https://docs.unity3d.com/kr/current/Manual/SupportedEvents.html