Unity3d 协程、调用函数、委托
(一)协程
开启方法:StartCoroutine("函数名");
结束方法StopCoroutine("函数名"),StopAllCoroutines();
IEnumerator TestIEnumerator()
{
Debug.Log("协程");
//等待游戏界面绘制完成
yield return new WaitForEndOfFrame();
Debug.Log("游戏界面绘制完成");
//等待1秒后
yield return new WaitForSeconds(1F);
Debug.Log("1秒后");
//等待0.5秒后
yield return new WaitForSeconds(0.5F);
Debug.Log("0.5秒后");
while(true)
{
//等待固定更新
yield return new WaitForFixedUpdate();
Debug.Log("固定更新");
}
}
// Use this for initialization
void Start () {
StartCoroutine("TestIEnumerator");
}
(二)调用函数
开启方法
不重复调用
Invoke("函数名",“延迟时间”); 重复调用 InvokeRepeating("函数名",“延迟时间”,“重复间隔时间”);
结束方法
CancelInvoke("函数名"),CancelInvoke();
是否在有在调用的函数
IsInvoking(); 指定函数是否在调用 IsInvoking("函数名");
void TestInvokeRepeating()
{
Debug.Log("重复调用");
m_round++;
if (m_round > 15)
{
//结束所有调用
//CancelInvoke();
//结束指定调用
CancelInvoke("TestInvokeRepeating");
} if (IsInvoking("TestInvokeRepeating"))
{
Debug.Log("调用中");
}
else
{
Debug.Log("不在调用中");
}
}
void TestInvokeRepeating2()
{
Debug.Log("重复调用TestInvokeRepeating2"); }
// Use this for initialization
void Start () {
m_round = 0;
InvokeRepeating("TestInvokeRepeating",0f,1f);
InvokeRepeating("TestInvokeRepeating2", 0f, 1f);
}
(二)委托
public class GameManager : MonoBehaviour
{
//定义一个委托
delegate int TestEntrust(int a); public int ReceiveLogic(int a)
{
Debug.Log("参数a="+a);
return 0;
}
// Use this for initialization
void Start () {
//创建委托对象
TestEntrust rl = new TestEntrust(ReceiveLogic);
//调用
rl(3);
}
}
Unity3d 协程、调用函数、委托的更多相关文章
- Unity3D 协程 Coroutine
协程(Coroutine)的概念存在于很多编程语言,例如Lua.ruby等.而由于Unity3D是单线程的,因此它同样实现了协程机制来实现一些类似于多线程的功能,但是要明确一点协程不是进程或线程,其执 ...
- Unity3D协程yield的理解
Unity3D的协程概括地将就是:对于一段程序,你可以加上yield标明哪里需要暂停,然后在下一帧或者一段时间后,系统会继续执行这段代码.协程的作用:①延迟一段时间执行代码.②等某个操作完成之后再执行 ...
- 二、深入asyncio协程(任务对象,协程调用原理,协程并发)
由于才开始写博客,之前都是写笔记自己看,所以可能会存在表述不清,过于啰嗦等各种各样的问题,有什么疑问或者批评欢迎在评论区留言. 如果你初次接触协程,请先阅读上一篇文章初识asyncio协程对asy ...
- Unity3D 协程 浅谈
协程 理解:协程不是线程,也不是异步执行(知道就行). 1.协程和MonoBehaviour的Update函数一样,也是在MainThread中执行的(一定得明白这句话意思). void Start ...
- Unity3d 协程
参考文章: http://blog.csdn.net/onafioo/article/details/48979939 http://www.cnblogs.com/zhaoqingqing/p/37 ...
- [转]Unity3D协程介绍 以及 使用
作者ChevyRay ,2013年9月28日,snaker7译 原文地址:http://unitypatterns.com/introduction-to-coroutines/ 在Unity中,协 ...
- Unity3d 协程的注意问题(新手须注意,老手须加勉)
关于unity3d的协程,非常的好用,比如等待几秒执行,等待下一帧执行等! 但是也有潜在的问题: 1.协程是单线程的,在主线程中完成 2.如果发现yield, 那么这一帧会结束,那么等下一帧调用此脚本 ...
- Unity3D协程
协程介绍 Unity的协程系统是基于C#的一个简单而强大的接口 ,IEnumerator,它允许你为自己的集合类型编写枚举器.这一点你不必关注太多,我们直接进入一个简单的例子来看看协程到底能干什么.首 ...
- Unity3D协程介绍 以及 使用
作者ChevyRay ,2013年9月28日,snaker7译 原文地址:http://unitypatterns.com/introduction-to-coroutines/ 在Unity中,协 ...
随机推荐
- 安装.Net framework 3.5 sp1报错的解决方法
错误日志,提示: [11/22/07,18:04:40] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for compo ...
- [改善Java代码]不要覆写静态方法
建议33: 不要覆写静态方法 我们知道在Java中可以通过覆写(Override)来增强或减弱父类的方法和行为,但覆写是针对非静态方法(也叫做实例方法,只有生成实例才能调用的方法)的,不能针对静态方法 ...
- 转:Linux网络IO并行化技术概览
转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isapp ...
- asp.net mvc 的几种分页Pager
第一种 /// <summary> /// 分页Pager显示 /// </summary> /// <param name="html">&l ...
- Linux 命令 - id: 显示用户的身份标识
命令格式 id [OPTION]... [USERNAME] 命令参数 -a 忽略,仅为与其他版本相兼容而设计. -Z, --context 仅显示当前用户的安全环境. -g, --group 仅显示 ...
- ZooKeeper(3.4.5) - 原生 API 的简单示例
一.创建会话 1. 创建一个基本的ZooKeeper会话实例 package com.huey.dream.demo; import java.util.concurrent.CountDownLat ...
- Android Support v4,v7,v13
Android Support v4 是最早(2011年4月份)实现的库.用在Android1.6 (API lever 4)或者更高版本之上.它包含了相对V4, V13大的多的功能. 例如:Frag ...
- asp.net 文件上传示例整理
ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录. 代码如下 复制代码 ...
- 读<<CLR via C#>> 详谈泛型
1,什么是泛型? 答:泛型是类型的模板,类型是实例(对象)的模板.C#提供了5种泛型:类,接口,委托,结构和方法. 2,使用泛型有什么好处? 答:继承实现的是"代码重用",而泛型实 ...
- Tomcat遇到的问题The Tomcat server configuration at ServersTomcat v5.5 Server at localhost-config is missing. Check..
一.解决方法 删除Servers视图,重新创建一个即可.