在这个脚本中我们首先需要定义一个委托类型,在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("直接运行方法");
    }
}

运行结果如图:

 【Unity】Unity委托和事件的应用

相关文章:

  • 2021-05-27
  • 2022-12-23
  • 2021-11-02
  • 2022-12-23
  • 2022-01-15
  • 2022-12-23
  • 2021-05-18
猜你喜欢
  • 2022-01-12
  • 2022-12-23
  • 2021-09-30
  • 2021-11-03
  • 2022-12-23
  • 2021-07-04
  • 2021-06-11
相关资源
相似解决方案