【GameFramework框架学习】事件系统的使用

一、作用

用于各个模块之间的通信,实现各个模块之间的解耦

二、使用例子

1、自定义事件参数

csharp 复制代码
public class MyEventArgs : GameEventArgs
{
    public static readonly int EventId = typeof(MyEventArgs).GetHashCode();
    public override int Id => EventId;

    public string Message { get; private set; }

    public static MyEventArgs Create(string message)
    {
        var args = ReferencePool.Acquire<MyEventArgs>();
        args.Message = message;
        return args;
    }

    public override void Clear()
    {
        Message = null;
    }
}

2、订阅事件(在需要的地方)

csharp 复制代码
GF.Event.Subscribe(MyEventArgs.EventId, OnMyEvent);

//事件触发执行的函数
private void OnMyEvent(object sender, GameEventArgs e)
{
    var eventArgs = (MyEventArgs)e;
    Log.Info("收到消息:" + eventArgs.Message);
}

3、触发事件

csharp 复制代码
GameEntry.Event.Fire(this, MyEventArgs.Create("你好 Event!"));

4、取消事件

csharp 复制代码
GameEntry.Event.Unsubscribe(MyEventArgs.EventId, OnMyEvent);

三、扩展

TODO

相关推荐
又是进步的一天19 分钟前
一台虚拟机学习CI流程
学习·ci/cd·云原生·容器·kubernetes·devops
十月的皮皮35 分钟前
C语言学习笔记20260614-数组奇偶数调整3种方法
c语言·笔记·学习
怪我冷i40 分钟前
人工智能的数学基础——学习笔记
人工智能·笔记·学习
烁3471 小时前
Oracle学习
数据库·学习·oracle
小的博客1 小时前
Oh-My-Posh安装及使用
学习·数据可视化
186******205311 小时前
新手高效学习知识体系构建指南
学习
俏皮小混子1 小时前
山东大学软件学院项目实训-创新实训-计科智伴(六)——个人博客(后端运行后真实调整)
人工智能·笔记·学习·ui
Suxing91 小时前
C语言基础分享——内存里的“左右手互搏”术:大小端
c语言·开发语言·学习
zhangrelay1 小时前
ROS2 Lyrical 入门+进阶+精通+……
linux·笔记·学习·机器人·课程设计
babe小鑫1 小时前
2026年大数据与计算机专业学习数据分析的技术价值
大数据·学习·数据分析