周六周日给自己放两天假,算法停两天~但是懒不能偷的,今天谈谈通知。
众所周知,unity中的代码是类似脚本语言的存在,那么问题来了,类与类之间是如何通信的。
第一时间想到的GetComponent函数,但这个方法我们并不知道是如何实现的,从网上得到的资料貌似这个方法性能不是很好,而且如果工程大了,里面的脚本数量上升到一定程度时,想想满天飞的GetComponent都头疼,维护起来肯定好不到哪去。这时候我们想到了观察者模式,再配合C#的委托事件机制,貌似可以解决这个问题,同样我希望把他们封装起来而不是散布在各个脚本中,所以根据通知模式有了一些通知中心。
我的想法是把委托封装出来存在字典中,废话不多说,直接上代码。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
/// <summary>
/// 通知中心,继承MonoBehavior的单例,用来处理各模块之间的消息传递
/// 本质其实就是观察者模式,可以参照java用接口观察者模式
///