Unity定义好的委托
在Unity里使用委托时,除了上章讲的自定我委托,还可以使用Unity定义好的委托
Action无参无返回值委托
**Func<T>**泛型委托 返回指定类型
Action<T1, T2> 可以传多个参数的有参委托 无返回值
**Func<T1, T2>**可以传多个参数 有参有返回值
声明如下:
cs
Action action;
Func<string> func;
Action<int, string> action2;
Func<int, string> func2;
示例 :
cs
public class MyTest3 : MonoBehaviour
{
private Boss bos;
private void Start()
{
bos = new Boss();
bos.bossInfo += FunTest1;
bos.bossInfo += FunTest2;
bos.Dead();
}
void FunTest1(Boss boss)
{
Debug.Log($"怪物死亡,金币增加{boss.money}");
}
void FunTest2(Boss boss)
{
Debug.Log($"{boss.bossName}被勇者杀死了,显示到战绩面板");
}
}
class Boss
{
//委托
public Action<Boss> bossInfo;
//怪物名字
public string bossName="小钻风";
//Boss价值
public int money = 10;
public void Dead()
{
bossInfo?.Invoke(this);//Boss死亡之后执行委托,把自己传出去
}
}
输出结果: