Unity 入门教程 之 快速学会委托作为参数传递

 时间:2026-02-15 18:16:06

1、把委托当参数传递:

所谓委托就是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If … Else(Switch)语句,同时使得程序具有更好的可扩展性

1、打开Unity,新建一个空工程,然后Unity界面如下图

Unity 入门教程 之 快速学会委托作为参数传递

2、在工程中新建一个脚本,脚本分别可以命名为“DelegateTest”,具体如下图

Unity 入门教程 之 快速学会委托作为参数传递

3、选中“DelegateTest”脚本,双击脚本或者右键“Open C# Project”,打开脚本,具体如下图

Unity 入门教程 之 快速学会委托作为参数传递

4、在打开的“DelegateTest”脚本上进行代码编辑,首先定义委托名并带一个参数,然后定义实现一个带委托参数的函数,接着实现一个委托函数,最后在Update函数里按下“D”键触发委托函数,具体代码及代码说明如下图

Unity 入门教程 之 快速学会委托作为参数传递

5、脚本编译正确后,回到Unity界面,在场景中新建一个“GameObject”,然后把脚本“DelegateTest”赋给“GameObject”,具体如下图

Unity 入门教程 之 快速学会委托作为参数传递

6、运行场景,按下“D”键,即可在控制台Console上看到打印结果,具体如下图

Unity 入门教程 之 快速学会委托作为参数传递

7、脚本具体代码如下:

using UnityEngine;

using System;

public class DelegateTest : MonoBehaviour {

    public delegate void MyDelegate(string str);

    // Use this for initialization

    void Start () {

            }

    public void ToCallDelegate(string str, MyDelegate CallDelegate) {

                CallDelegate (str);

    }

        // Update is called once per frame

    void Update () {

        if (Input.GetKeyDown(KeyCode.D)) {

            ToCallDelegate(DateTime.Now.ToString("yyyy年MM月dd日"), PrintInfo01);

            ToCallDelegate(DateTime.Now.ToString("yyyy年MM月dd日"), PrintInfo02);

        }

    }

    void PrintInfo01(string str) {

        print (str + "第一次调用委托");

    }

    void PrintInfo02(string str) {

        print (str + "第二次调用委托");

    }

}

8、到此,《Unity 入门教程 之 快速学会委托作为参数传递》讲解结束,谢谢

  • 进行员工上网行为管理的方法
  • 王者荣耀扁鹊化身博士图片
  • 诺弗兰物语隔热凝胶配方是什么
  • 车行易查违章如何办理年检
  • 椰香玉米饼的做法
  • 热门搜索
    我爱爸爸妈妈手抄报 初二历史手抄报 美德少年手抄报资料 母爱的手抄报 安全文明手抄报图片 手抄报装饰图案 孝敬老人的手抄报 只要妈妈露笑脸手抄报 交通的手抄报 感恩主题手抄报