一、作用
用于各个模块之间的通信,实现各个模块之间的解耦
二、使用例子
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