在这个脚本中我们首先需要定义一个委托类型,在unity中使用delegate关键字来定义的,有了委托就能够在下面的函数中调用了
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Acc : MonoBehaviour
{
private delegate void DebugString(string param);//该委托传入字符串
private delegate void RunVido();//该委托不传入任何参数
/// <summary>
/// 输出中文名字
/// </summary>
public void DebugZH(string str)
{
Debug.LogError("中文名字: " + str);
}
public void Runvido()
{
Debug.LogError("方法运行");
}
/// <summary>
/// 输出英文名字
/// </summary>
public void DebugCN(string str)
{
Debug.LogError("English Name: " + str);
}
//定义一个委托的变量事件
private DebugString debugString;
private RunVido runVido;
void Start()
{
//给委托对象赋值
debugString = DebugZH;
debugString("测试");
Debug.Log("给委托对象赋值");
//给委托对象再加一个事件,叫多路广播
debugString += DebugCN;
debugString("CeShi");
Debug.Log("给委托对象再加一个事件,叫多路广播");
//输出中文试试
debugString("测试");
Debug.Log("输出中文");
//给委托对象减去一个事件
debugString -= DebugZH;
debugString("CeShi");
Debug.Log("给委托对象减去一个事件");
runVido += Runvido;
runVido();
Debug.Log("直接运行方法");
}
}
运行结果如图: