Unity 3D
来源:互联网 发布:网络媒介素养 名词解释 编辑:程序博客网 时间:2024/06/10 21:13
Unity 3D - 协同程序 :
API列表 :
说明 :
一般用来在脚本中增加延时效果。因为在Start()或者Update()中是不能直接延时的(WaitForSecond())等待某个操作结束之后再执行代码字符串做为参数
协同程序,简称“协程”. 在脚本运行过程中,需要额外的执行一些其他的代码,这个时候就可以将“其他的代码”以协程的形式来运行 .
类似于开启了一个线程,但是协程不是线程。
开启协同:
StartCoroutine(string methodName):字符串作为参数可以开启线程并在协程结束前终止线程;开启协程时最多只能传递一个参数,并且性能消耗会更大一点
StartCoroutine(IEnumerator routine):只能等待协程的结束而不能随时终止(除非使用StopAllCoroutines()方法)
中止协同:
StopCoroutine(string methodName):中止一个协同,只能终止该MonoBehaviour中的协同程序
StopAllCoroutines():中止所有协同,只能终止该MonoBehaviour中的协同程序
yiled:
- 和协同密切相关的一个概念,一个协同程序在执行过程中,可以在任意位置使用yield语句。yield的返回值控制何时恢复协同程序向下执行。
注意 :
将协同程序所在gameobject的active属性设置为false,当再次设置active为ture时,协同程序并不会再开启。
yield不可单独使用 , 需要与return配合使用 , 例如:
//等0帧 yield return 0; //等待1帧 yield return 1; //等待3秒 yield return WaitForSeconds(3.0); //立即返回调用点 yield return null;
- 所有使用yield的函数必须将返回值类型设置为IEnumerator类型,例如:
IEnumerator DoSomething() { Debug.Log("do something…");}
C#实例 :
using System.Collections;using System.Collections.Generic;using UnityEngine;public class TestScript : MonoBehaviour { void Start () { print ("begin"); StartCoroutine ("Test"); } IEnumerator Test() { yield return new WaitForSeconds (2); print("wait 2 seconds print"); }}
1 0
- Unity 3D
- unity 3d 注意事项
- Unity 3d 摄像头
- Unity 3D 使用
- Unity 3D--PlayerPrefs
- Unity 3d
- Unity 3D俄罗斯方块
- unity 3d 多开
- UNITY 3D笔记
- Unity 3D接触
- unity 3d
- Unity 3D简介
- Unity 3D 琐记
- unity 3d 视频
- Unity 3D 光源
- Unity 3D FingerID
- 再议Unity 3D
- unity 3d 网址
- Spring简介
- DOM操作表格
- 高并发Java 八 NIO和AIO
- windows下wamp安装php-redis扩展
- 大型网站架构之分布式消息队列
- Unity 3D
- Java系列-Set、List、Map的遍历总结
- pyqt注销操作后重新登录--程序的重启
- 第二行代码学习笔记——第四章:手机平板要兼容——探究碎片
- linux pci扫描流程
- 游戏开发之在UE4中编写C++代码控制角色
- WININET编程获得cookie的sessionID并保持sessionID不过期
- 第一章 数据引用与匿名存储
- VMware Workstation Pro与win7网络互通设置