Skip to content

事件系统

高凯 edited this page Feb 5, 2018 · 1 revision

简介

框架提供了GlobalEvent类派发事件

API

以枚举为Key
static void AddEvent(Enum type, EventHandle handle, bool isUseOnce = false) 注册一个事件监听
static void RemoveEvent(Enum type, EventHandle handle) 移除一个事件监听
static void RemoveEvent(Enum type) 移除某类事件监听
static void DispatchEvent(Enum type, params object[] args) 派发事件

以String为Key
static void AddEvent(string eventKey, EventHandle handle, bool isUseOnce = false) 注册一个事件监听
static void RemoveEvent(string eventKey, EventHandle handle) 移除一个事件监听
static void RemoveEvent(string eventKey) 移除某类事件监听
static void DispatchEvent(string eventKey, params object[] args) 派发事件

泛型方法
static void AddTypeEvent<T>( EventHandle<T> handle, bool isUseOnce = false) 注册一个事件监听 static void RemoveTypeEvent<T>(EventHandle<T> handle, bool isUseOnce = false) 移除一个事件监听
static void RemoveTypeEvent<T>(bool isUseOnce = false) 移除某类事件监听
static void DispatchTypeEvent<T>(T e, params object[] args) 派发事件

static void RemoveAllEvent() 移除所有事件监听

示例

    GlobalEvent.AddEvent(MemoryEvent.FreeHeapMemory, CleanCache);
    GlobalEvent.DispatchEvent(MemoryEvent.FreeHeapMemory);
    GlobalEvent.RemoveEvent(MemoryEvent.FreeHeapMemory, CleanCache);
    GlobalEvent.AddEvent("GameStart", ReceviceGameStart);
    GlobalEvent.DispatchEvent("GameStart");
    GlobalEvent.RemoveEvent("GameStart", ReceviceGameStart);
    GlobalEvent.AddTypeEvent<SyncEntityMsg>(ReceviceSyncEntity);
    GlobalEvent.DispatchTypeEvent(new SyncEntityMsg());
    GlobalEvent.RemoveTypeEvent<SyncEntityMsg>(ReceviceSyncEntity);
Clone this wiki locally