我眼中的协同(unity IEnumerator )

怎么理解协同?

在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。可以用来控制运动、序列以及对象的行为。

大家做程序员,应该都能明白什么是主线程序,按照上面的说法,可以知道协同并非线程。

一般什么地方能使用到协同?

想要实现一些延时等待,操作完成之后在执行后面的代码的时候都可以使用协同进行实现,比如说使用www加载资源,等到加载完成在把图片拿出来使用,比如打开某个界面后两秒钟播放一个特效。

如何使用

直接上例子:
void Main()

{

        StartCoroutine(WaitForOneSec());//调用协同必须使用StartCoroutine

}

IEnumerator WaitForOneSec()//返回值必须是IEnumerator

{

        yield return new WaitForSeconds(1);//必须有yield return来返回,目前这句的意思是等待一秒终止后执行后面一句话。

        Debug.LogError("wait over");

}

返回值类型

yield return null相当于挂起一帧,什么意思呢?如果一个协同里面有一句yield return null执行顺序为:1.调用协同函数-->2.直接进入协同函数内部执行代码---->3.执行到yield return null挂起 ----->4.执行Update-->5.执行LastUpdate--->6.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值