using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Control : MonoBehaviour
{
public delegate void DelegateTool(string zimu);
Enev se = new Enev();
void Start()
{
//方法一
text("sdhj", se.A);
text("jkk", se.B);
//方法二 多个委托一起调用 第一个=是赋值 第二个+=是增加
DelegateTool dele;
dele = se.A;
dele += se.B;
text("jkk", dele);
//方法三 简化方法二
DelegateTool dele1 = new DelegateTool(se.A);
dele1 += se.B;
text("jkk", dele1);
//方法四 使用-=来减掉不需要得委托
DelegateTool dele2 = new DelegateTool(se.A);
dele2 += se.B;
text("jkk", dele2);
dele2 -= se.A;
text("jkk", dele2);
}
public void text(string str, DelegateTool dt)
{
dt(str);
}
}
//使用委托方法可以避免使用if…else if 或者switch,使得程序有更好的可扩展性。
public class Enev : MonoBehaviour
{
public void A(string tex)
{
print("A " + tex);
}
public void B(string tex)
{
print("B " + tex);
}
}