Unity
Delegate
Lambda匿名委托:lambda表达式,其在C++中称为闭包,其格式如下: “()=>{};”,但记住分好(“;”)结尾;记住其格式即可,“()=>{};”,小括号里时面是参数,大括号里面是方法体;参考形式例如下:CallDelegate = (string str) => { print(str + '调用Lambda委托'); };
打开Unity,新建一个空工程,然后Unity界面如下图
在工程中新建一个脚本,脚本分别可以命名为“DelegateTest”,具体如下图
选中“DelegateTest”脚本,双击脚本或者右键“Open C# Project”,打开脚本,具体如下图
在打开的“DelegateTest”脚本上进行代码编辑,首先定义委托名并带一个参数,然后声明委托对象,接着使用Lambda匿名委托(形式为“()=>{};”)的方法给委托对象添加委托函数,最后在Update函数里按下“D”键触发委托函数,具体代码及代码说明如下图
脚本编译正确后,回到Unity界面,在场景中新建一个“GameObject”,然后把脚本“DelegateTest”赋给“GameObject”,具体如下图
运行场景,按下“D”键,即可在控制台Console上看到打印结果,具体如下图
脚本具体代码如下:using UnityEngine;using System;public class DelegateTest : MonoBehaviour { delegate void MyDelegate(string str); MyDelegate CallDelegate; // Use this for initialization void Start () { CallDelegate = (string str) => { print(str + '调用Lambda委托'); }; } // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.D)) { CallDelegate (DateTime.Now.ToString('yyyy年MM月dd日')); } }}
到此,《Unity 入门教程 之 快速学会使用Lambda匿名委托》讲解结束,谢谢
若帮到您,还请帮忙投票以帮助到更多的人;若有疑问,请留言