委托事件可以以订阅和发布的方式来实现数据传递
(1)定义委托事件:
public class control : MonoBehaviour {
···
public delegate void GamObjectChangeHandler(string objName);
public static event GamObjectChangeHandler onGamObjChange;
···
}
(2)发布数据的方法:
在需要发布数据的函数中直接调用
if (onGamObjChange != null) onGamObjChange(currentObj.name);
(3)订阅数据的方法
在新的类中添加以下代码:
control.onGamObjChange += LoadObjInfoByName;
此时订阅数据成功,数据将被传递到LoadObjInfoByName函数中,在该函数中直接使用即可
void LoadObjInfoByName(string objName)
{
print(objName);
}
(4)取消订阅的方法:
control.onGamObjChange -= LoadObjInfoByName;
委托事件作为监视者模式中比较好用的一种基于事件的数据传输方法,实时性能很不错