事件
GameFrameX 的 Event 游戏事件系统的组件
Event 游戏事件系统的组件 (Event Component) - 提供游戏事件系统的组件相关的接口。用于管理游戏事件的订阅与派发。
功能
- 事件订阅与取消订阅: 允许你根据事件ID来订阅或取消订阅事件处理回调函数。
- 事件派发: 提供了线程安全的事件派发方法
Fire,即使在非主线程也能保证在主线程回调事件处理函数,以及立即派发的方法FireNow。 - 处理函数统计: 可以获取当前已订阅的事件处理函数数量和事件数量。
- 默认事件处理函数设置: 允许设置默认事件处理函数来捕获未明确订阅的事件。
使用方法
获取事件数量和事件处理函数的数量:
csharpint eventHandlerCount = eventComponent.EventHandlerCount; int eventCount = eventComponent.EventCount;订阅事件:
csharpeventComponent.Subscribe("game_start", OnGameStart);其中
OnGameStart是遵循EventHandler<GameEventArgs>委托的方法。取消订阅事件:
csharpeventComponent.Unsubscribe("game_start", OnGameStart);抛出事件:
线程安全的方式(在下一帧分发):
csharpeventComponent.Fire(this, new GameEventArgs());立即模式(立刻分发):
csharpeventComponent.FireNow(this, new GameEventArgs());
设置默认事件处理函数:
csharpeventComponent.SetDefaultHandler(OnDefaultEvent);其中
OnDefaultEvent是遵循EventHandler<GameEventArgs>委托的方法。
通过上述步骤,可以在游戏中有效地使用事件组件进行事件的订阅、取消订阅和派发,从而实现游戏中的事件驱动编程。
使用方式(任选其一)
直接在
manifest.json的文件中的dependencies节点下添加以下内容json{"com.gameframex.unity.event": "https://github.com/GameFrameX/com.gameframex.unity.event.git"}在Unity 的
Packages Manager中使用Git URL的方式添加库,地址为:https://github.com/GameFrameX/com.gameframex.unity.event.git直接下载仓库放置到Unity 项目的
Packages目录下。会自动加载识别
