码迷,mamicode.com
首页 > 编程语言 > 详细

关于Unity协程(Coroutine)

时间:2017-05-25 23:40:41      阅读:468      评论:0      收藏:0      [点我收藏+]

标签:更新   协程   tco   影响   unit   nis   不能   启动   nbsp   

协程官方doc解释
A coroutine is a function that can suspend its execution(yield) until the given given YieldInstruction finishes.

StartCoroutine开启协程 先执行协程中的代码 碰到yield return时控制权交给unity引擎
引擎继续做接下来的工作例如第一次yield return之后执行StartCoroutine下一行代码
直到满足yield指令的要求才会重新进入协程中的yield点


unity像是做如下的事情:
IEnumerator r = someCoroutine;
while (r.MoveNext())
{
while (!GetYieldCondition(r.Current))
{
//do other things
}
}

 

另外Invoke和InvokeRepeat实际上都是协程,并不是多线程

在unity里边使用.Net多线程做一些事情是非常好的,比如解压资源 更新资源等。
因为单开线程的话 不会影响主线程卡顿,这样UI就不会卡了。
但是开的线程里边不能执行unity主线程的mono代码。线程启动后,执行完毕自动结束该线程、可以同时启动多个线程做事。

 

关于Unity协程(Coroutine)

标签:更新   协程   tco   影响   unit   nis   不能   启动   nbsp   

原文地址:http://www.cnblogs.com/friedRib/p/6906264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!