您的位置:首页 > 移动开发 > Unity3D

unity脚本中的协程Coroutine

2017-10-17 13:57 169 查看
定义:

具有多个返回(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-在请求结束后执行,适合加载数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 delegate c# unity