本文参考:https://blog.csdn.net/z625309640/article/details/80547877
代码在文末,直接复制到你的工程中,就可以使用
目录
一、UnityEvent
二、本事件系统主要原理
三、单例模式
四、正式开始写代码吧
五、怎么使用?
六、完整代码
七、装箱拆箱优化
因为这个简单的事件管理器在我完成某项作业时帮了我很大的忙,所以特地记录下;
该事件系统是基于UnityEvent实现的,在应对小型工程时还是游刃有余的,可以说是解耦利器,如果你是unity初学者的话,可以试一试这个事件系统。原博客只给出了代码,我这边就稍微扩展一下
一、UnityEvent
UnityEvent有三个公共方法,官网截图如下:
![Unity 基于UnityEvent实现轻量级事件管理器_第1张图片](http://img.e-com-net.com/image/info8/0522fd0a053b4229968e502768e0a7c9.png)
分别是:
将监听函数添加UnityEvent;
触发调用已注册的监听函数(回调函数)
删除监听
在代码量较少的情况下,直接使用是没有什么问题,但是一旦代码数量变大,工程中的模块变多,就会显得很混乱,这个时候就有必要对其进行封装
二、本事件系统主要原理
这个事件系统主要通过一个字典将抽象的事件和具体的回调函数联系在一起,我们可以这样定义这个字典:
private Dictionary eventDictionary = new Dictionary();
对于字典的值:如果UnityEvent想要带有参数,可以在上面代码的基础上,将UnityEvent改为UnityEvent,由于事先不知道传的参数类型,可以直接定义为object类型,即UnityEvent