多语言展示
当前在线:1810今日阅读:27今日分享:41

Unity 委托 之 快速学会Func添加Lambda委托

Unity 委托 之 快速学会Func添加函数委托。Func 委托与 Delegate 、Action委托类似,都可以用来做事件委托使用,而且也可以使用三种方式进行添加委托;本节介绍使用Lambda委托的方式添加Func委托的方法,具体如下
工具/原料
1

Unity

2

Func

一、基本概念
1

Func:封装一个具有一个参数并返回 TResult 参数指定的类型值的方法,其中 T in 参数可以没有,目前好像最多支持16个参数

2

Func使用:1)似乎不能多播委托2)在 Unity 编程的时候,添加上 using System;3)Func 用于带返回值的委托4)与Action委托区别,Func能返回函数执行结果,而Action返回类型是Void

3

Lambda委托形式:形式为:()=> { },其中()里为参数,{ }里面为具体实现的代码

二、委托 之 快速学会Func添加Lambda委托
1

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

2

在工程中新建一个脚本,脚本可以命名为“FuncTest”,具体如下图

3

选中“FuncTest”脚本,双击脚本或者右键“Open C# Project”,具体如下图

4

在打开的“FuncTest”脚本上进行代码编辑,首先定义委托,其中一个不带参数,另一个带参数,接着给委托使用Lambda的方式(形式为:()=>{ })添加委托函数,并在Update函数中分别按下“A”、“F' 键触发委托函数,具体代码及代码说明如下图

5

脚本具体代码如下:using System;using UnityEngine;public class FuncTest : MonoBehaviour {    public Func MyTestFunc1;    public Func MyTestFunc2;    // Use this for initialization    void Start () {        MyTestFunc1 = () => {            return ('无参带返回值的Func委托 1');        };        MyTestFunc2 = (int intAgr) => {            return ('带参带返回值的Func委托 '+intAgr);        };    }        // Update is called once per frame    void Update () {        if (Input.GetKeyDown(KeyCode.A)) {            print(MyTestFunc1 ());        }        if (Input.GetKeyDown(KeyCode.F)) {            print(MyTestFunc2 (2));        }     }}

6

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

7

运行场景,即可看到控制台Console上的打印结果与预期一致,具体如下图

8

到此,《Unity 委托 之 快速学会Func添加Lambda委托》讲解结束,谢谢

注意事项

若帮到您,还请帮忙投票以帮助到更多的人;若有疑问,请留言

推荐信息