原创
1.先写一个委托类,所有的委托都写在这个类里。
public class MyDelegate {
public delegate void LogDelegate(string log); //定义 委托名为LogDelegate,带一个string参数的 委托类型
public static LogDelegate LogEvent; //声明委托对象,委托实例为LogEvent
public static void OnLogEvent(string log) //可以直接 MyDelegate.LogEvent("")调用委托,这么写方便管理,还可以扩展这个方法;
{
if (LogEvent != null)
{
LogEvent(log);
}
}
}
2.添加委托调用事件,调用委托。
void Start () {
MyDelegate.LogEvent += MyLog;
MyDelegate.LogEvent += MyLog2;
MyDelegate.OnLogEvent("给你们这些小函数发回调消息了啊!");
}
void MyLog(string log)
{
Debug.Log( "这种委托方法真是好用的不得了!我收到你的消息了:" + log );
}
void MyLog2(string log)
{
Debug.Log( "可以实现消息触发回调,好方便!我也收到了:" + log);
}
相当实用,在工作中用的地方很多,和观察者设计模式差不多,但是我感觉比观察者好用,代码少,而且确实好用,特别是接收到比如登录成功消息,这时候就需要分发消息了,通知界面显示名字,更新游戏币,加载任务装备,一个委托搞定!。