主题
BindableEvent
BindableEvent 是同端脚本之间的事件容器,通过 Connect 或 Once 监听,并通过 Fire 传递一个可选事件参数。
概览
BindableEvent 是同端脚本之间的事件容器,通过 Connect 或 Once 监听,并通过 Fire 传递一个可选事件参数。
继承自
Unit;可通过World:CreateUnit("BindableEvent", ...)创建;返回单个单位
函数
Fire
签名:Fire(args: Any?)
触发本地事件,并向监听函数传递一个可选参数;多项数据可装入单个 Table。
| 参数 | 类型 | 说明 |
|---|---|---|
args | Any | 事件参数 |
注册一次性监听并触发本地事件
lua
-- @runtime client
local notifyEvent = game:CreateUnit("BindableEvent", { Name = "关卡完成事件" })
if notifyEvent == nil then return end
notifyEvent:Once(function(message)
print("收到本地事件:", message)
end)
notifyEvent:Fire("第一关已完成")
notifyEvent:Destroy()Connect
签名:Connect(func: Function) -> Connection
在 BindableEvent 实例上注册一个监听函数,当该事件被 Fire 触发时,传入的 func 会被调用;返回一个 Connection 对象,用于后续断开该监听。
| 参数 | 类型 | 说明 |
|---|---|---|
func | Function | 事件触发时调用的监听函数 |
返回值 Connection
Once
签名:Once(func: Function) -> Connection
在 BindableEvent 实例上注册一个只触发一次的监听函数,当事件下一次被 Fire 触发时调用 func,随后该监听自动失效,不再响应后续触发;返回一个 Connection 对象,可用于提前断开该监听。
| 参数 | 类型 | 说明 |
|---|---|---|
func | Function | 第一次事件触发时调用的监听函数 |
返回值 Connection
Wait
签名:Wait(duration: Number?) -> Any
将当前协程挂起,直到该 BindableEvent 事件被触发。事件触发后协程恢复,并将触发时返回的数据作为 Wait 的返回值交给调用位置。duration 为可选的等待时长参数。
| 参数 | 类型 | 说明 |
|---|---|---|
duration | Number | 超时时间(秒) |
返回值 Any
属性
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Event | Signal | - | 只读属性。表示 BindableEvent 对外暴露的事件信号对象,属于 Signal 类型,可用来查看或传递该事件对应的信号实例。 |
