Event System
Event System
方法1:
两个文件
用法
- 使用
interface IEventListener
注册事件,卸载事件 - 注册具体方法使用
AddEventListener
,卸载使用RemoveEventListener
- 如果需要传多个参数,需要适当更新文件具体代码
综述
一件事情会有可能会有许多反馈,每当我们要检测一个事件,首先注册这个事件,不断+=添加方法(反馈),这些都在start(awake)之类中进行,等到游戏结束再取消订阅。
- 包含一个
static EventManager instance;
单一实例并用于外部访问成员数据和方法 - 包含一个
interface IEventInfo
用于外部多态地实现方法 - 包含一个字典
Dictionary<string,IEventInfo> actionDic
用于存储事件,可以理解成”事件池” - 包含类
EventInfo<T>
继承自上述接口,用于添加单参数方法 - 包含添加、移除、触发事件
方法2:
文件
原理与方法一是一样的,使用方法也大差不差。
方法一将事件加入字典,不用每次添加都往一个文件里跑,并且结构也清晰一些。
方法二代码量相对少?好像也没少…。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.