Unity3D协程
来源:互联网 发布:联想电脑mac地址查询 编辑:程序博客网 时间:2024/06/08 13:38
协程:当开启一个协程后,Unity会进入协程函数执行,当遇到各种类型的yield语句时,Unity的执行权会回到开启协程的代码位置,继续这一帧的执行,当满足yield后面的语句条件时,Unity会从yield语句后继续执行。这只是个大致的概念,如果你没有看懂,后面会细说。
与C#协程不同的是,Unity的协程函数不需要规定函数返回值为IEnumerator,协程函数中可以不是yield return语句。
其yield有如下类型,根据类型不同,作用功能不同:
yield:是指开启协程函数后,系统会马上执行协程函数的内容,会执行到yield处停止,系统会保留yield代码处的执行环境,返回开启协程函数的地方,继续执行,在程序进入下一帧,Unity的Update函数执行后,系统会进入协程函数,找到上一帧保留的yield代码处,继续执行。
yield WaitForSeconds(2.f):和上面yield大致一样,只是Unity的Update进入执行yield语句后面的代码,需要满足2秒钟以后。
yield WaitForFixedUpdate:和yield大致一样,只是进入协程函数继续执行的时间为FixedUpdate后,Update之前。
yield WWW:和yield大致一样,进入协程函数继续执行的时间为Update()后,但是必须保证WWW类下载完成。
yield StartCoroutine :链式yield,继续执行的时间为子yield完成后。
大家一定要注意的是,yield以后,这一帧会返回协程函数开始的地方执行,yield后面的代码的执行,是在下一帧或者下几帧执行,而执行是由Unity系统负责,在Update()或者FixedUpdate()完成后,执行。
最后,看了不少网上关于协程的资料,可惜都没看到十分明白、详尽的,所以今天花了40分钟整理了一下,希望对大家有益处。
关于协程的更详细资料附上官网链接:
http://docs.unity3d.com/Manual/Coroutines.html
http://docs.unity3d.com/Manual/ExecutionOrder.html
- Unity3D协程
- Unity3D协程
- Unity3D协程
- unity3d 协程
- unity3d 协程Coroutines
- Unity3D 协程 浅谈
- Unity3D协程(一)
- Unity3D协程(二)
- Unity3D Coroutine(协程)
- Unity3D
- Unity3D
- Unity3D
- Unity3D
- unity3d
- Unity3D
- Unity3D
- Unity3D
- UNITY3D
- 资源查找收集整理
- 解决WinForm应用中引用“mshtml”出现“强名称签名对程序集 Microsoft.mshtml.dll 无效”
- Laravel自定义分页样式
- 使用gitlab+jenkins+saltstack+rsync自动部署Web应用
- [翻译]Swift编程语言——自动引用计数
- Unity3D协程
- Android Binder机制理解
- Java并发编程-14-并发阶段任务的运行-Phaser
- SAT数学满分备考攻略
- 黑马程序员---IOS基础---OC之Foundation框架的基本对象
- 【练习题】压缩字符串
- C++开发者都应该使用的10个C++11特性
- 第9题
- 欢迎使用CSDN-markdown编辑器