事件触发器
4 分
事件触发器接收来自Unity事件系统的事件并调用注册的函数。
要在ZEPETOScript中使用Unity事件触发器,您必须遵循以下格式。
首先,为了测试目的,将UI > 面板添加到场景中。

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

示例脚本
首先,导入与事件触发器相关的类。
import { EventTrigger, EventTriggerType } from 'UnityEngine.EventSystems';
import { Entry } from 'UnityEngine.EventSystems.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>();
// 创建事件系统条目
const entry = new Entry();
// 指定事件类型和委托
entry.eventID = EventTriggerType.PointerClick;
entry.callback.AddListener(() => {
console.log("点击")
});
// 注册事件条目
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的信息。