unity脚本中的协程Coroutine
2017-10-17 13:57
169 查看
定义:
具有多个返回(yield)点,可以在特定时机分部执行的函数
原理:
Unity每帧处理GameObject中的协同函数,直到函数执行完毕。
当一个协同函数启动时,本质创建迭代器对象,调用MoveNext方法,执行到yield暂时退出;
待满足条件后再次调用MoveNext方法,执行后续代码,直至遇到下一个yield为止;
如此循环到整个函数结束。
协程函数返回值类型IEnumerator,方法体中通过yield关键字定义返回点,
通过return XX对象定义继续执行的条件。
可以被yield return的对象:
1. Null 或者数字 -- 在Update后执行,适合分解逻辑的处理。
2. WaitForFixedUpdate--在FixedUpdate后执行,适合分解物理操作。
3. WaitForSeconds-- 等待指定时间,受时间缩放影响。
WaitForSecondsRealtime-- 等待指定时间,不受时间缩放影响。
4. Coroutine–等待该协程结束。
5. WaitForEndOfFrame–等待帧的结束,适合相机的跟随操作。
6. WaitUntil-当返回true
7. WaitWhile-当返回false
8. WWW-在请求结束后执行,适合加载数据
具有多个返回(yield)点,可以在特定时机分部执行的函数
原理:
Unity每帧处理GameObject中的协同函数,直到函数执行完毕。
当一个协同函数启动时,本质创建迭代器对象,调用MoveNext方法,执行到yield暂时退出;
待满足条件后再次调用MoveNext方法,执行后续代码,直至遇到下一个yield为止;
如此循环到整个函数结束。
语法:
通过MonoBehaviour中的StartCoroutine方法启动,StopCoroutine方法停止。协程函数返回值类型IEnumerator,方法体中通过yield关键字定义返回点,
通过return XX对象定义继续执行的条件。
可以被yield return的对象:
1. Null 或者数字 -- 在Update后执行,适合分解逻辑的处理。
2. WaitForFixedUpdate--在FixedUpdate后执行,适合分解物理操作。
3. WaitForSeconds-- 等待指定时间,受时间缩放影响。
WaitForSecondsRealtime-- 等待指定时间,不受时间缩放影响。
4. Coroutine–等待该协程结束。
5. WaitForEndOfFrame–等待帧的结束,适合相机的跟随操作。
6. WaitUntil-当返回true
7. WaitWhile-当返回false
8. WWW-在请求结束后执行,适合加载数据
相关文章推荐
- Unity协程(Coroutine)原理深入剖析
- Unity协程(Coroutine)原理深入剖析
- Unity中巧用协程(Coroutine)做状态机
- Unity3D - Unity协程(Coroutine)原理深入剖析
- Unity协程(Coroutine)原理深入剖析
- Unity 3D Coroutine&yield(C#脚本)
- Unity协程(Coroutine)原理深入剖析再续
- Unity如何在Editor下执行协程(coroutine)
- Unity协程(Coroutine)原理深入剖析(转载)
- [Unity菜鸟] 协程Coroutine
- Unity协程(Coroutine)原理深入剖析(转)
- C#中的yield return与Unity中的Coroutine(协程)(上)
- Unity协程(Coroutine)原理深入剖析再续
- Unity协程(Coroutine)原理深入剖析再续
- Unity引擎在执行协程(Coroutine)的原理
- Unity协程(Coroutine)原理深入辨析
- 【Unity3D基础教程】给初学者看的Unity教程(五):详解Unity3D中的协程(Coroutine)
- Unity协程(Coroutine)原理深入剖析
- Unity协程(Coroutine)原理深入剖析
- Unity协程(Coroutine)原理深入剖析