在unity中如何使用delegate

简介: 总结下使用C#中的委托(delegate)吧,其实这个并不难,但是对于没接触过的人还是有点小问题的,现在我在这做一个简单的例子来帮助大家对delegate的理解吧,想要更加加深对委托的理解,请度娘下吧,我就不在这丢人了,我也是百度后才对委托有了进一步的理解的!我们在unity中先建一个脚本,取名为TestDelegate。

总结下使用C#中的委托(delegate)吧,其实这个并不难,但是对于没接触过的人还是有点小问题的,现在我在这做一个简单的例子来帮助大家对delegate的理解吧,想要更加加深对委托的理解,请度娘下吧,我就不在这丢人了,我也是百度后才对委托有了进一步的理解的!
我们在unity中先建一个脚本,取名为TestDelegate。我做的这个测试主要是点击输出中文名字按钮来输出中文名字,点击英文名字来输出英文名字,这里有2个函数,一个是输出中文名字,还有一个就是输出英文名字的,如果我们不用委托的话,想要实现这个函数的话,那我们就要使用判断语句来实现吧(if else , switch)。现在用委托的话我们就不用写判断语句了,想我这样的人,大部分代码都是判断语句,现在我看见if else, switch,都心烦啊,大神的代码都很少出现这些呀,在其中也为我敲醒了一个警钟了,还得好好加倍努力啊, 好了 现在我们来写下简单的代码吧。如下
using UnityEngine;using System.Collections;
public class TestDelegate : MonoBehaviour
{

//定义一个委托(格式是不是很类很像),用来指向我们某个函数。(c++里面的指针函数)
//param参数是名字
private delegate void DebugString(string param);

///
/// 输出中文名字
///
public void DebugNameOfChina(string str)
{
Debug.Log("中文名字:" + str);
}

///
/// 输出英文名字
///
public void DebugNameOfEnglish(string str)
{
Debug.Log("English Name:" + str);
}

//定义一个委托的变量事件
private DebugString handlerDebugString;

void OnGUI()
{
if (GUILayout.Button("输出中文名字"))
{
//我想输出中文名字的话就给handlerDebugString 赋值成输出中文名字的这个函数DebugNameOfChina
handlerDebugString = DebugNameOfChina;
handlerDebugString("何建春");
}
else if (GUILayout.Button("Debug English Name"))
{
//我想输出英文名字的话就给handlerDebugString 赋值成输出中文名字的这个函数DebugNameOfEnglish
handlerDebugString = DebugNameOfEnglish;
handlerDebugString("Hejianchun");
}
}

}

更多unity2018的功能介绍请到paws3d学习中心查找。

相关文章
|
图形学
Unity 项目中委托Delegate用法案例
Unity中Delegate的用法场景 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) China...
1486 0
|
1月前
|
开发框架 Java C#
【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?
【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?
135 0
|
1月前
|
存储 自然语言处理 监控
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
|
1月前
|
定位技术 C# 图形学
Unity和C#游戏编程入门:创建迷宫小球游戏示例
Unity和C#游戏编程入门:创建迷宫小球游戏示例
103 2
|
10月前
|
开发框架 Java .NET
《unity游戏优化》第8章内存优化
《unity游戏优化》第8章内存优化
|
1月前
|
C# 图形学
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
266 2
|
1月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
236 0
|
1月前
|
运维 API C#
【Unity游戏破解】外挂原理分析
【Unity游戏破解】外挂原理分析
229 0
【Unity游戏破解】外挂原理分析
|
1月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
99 0
|
1月前
|
C# 图形学
【Unity 3D】游戏对象、添加删除获取组件、预制体Prefabs简介
【Unity 3D】游戏对象、添加删除获取组件、预制体Prefabs简介
120 0