2012年时候还在做iOS,OC里有个NotifationCenter蛮好用的,之后做Coscos2d也有这个,
然Unity并没有这个,且Unity SendMessage的消息机制效率低下,而且inactive的物件收不到消息,还只能带一个参数,忒不好用。
C#的Action和委托倒是好,但是公司项目里用多播注册事件的地方,很多人忘记取消注册,导致各种bug,我心酸。心想还是自己写个NotificationCenter吧。
代码如下:
接口:
需要注意的是,observer的handler可以无参数或者有参数,
handler在observer里声明的时候,如果有参数,形参类型必须是object[],用的时候做类型转换,
调用PostNotification()的时候需注意参数数目和顺序。
具体实例如下:
–EOF–