我们学习下unity3d中协程Coroutine的的原理及使用
1.什么是协调程序
unity协程是一个能暂停执行,暂停后立即返回,直到中断指令完成后继续执行的函数。
它类似一个子线程单独出来处理一些问题,性能开销较小,但是他在一个MonoBehaviour提供的主线程里只能有一个处于运行状态的协程。
2.协同程序的特点
1、协程在中断指令(YieldInstruction)产生时暂停执行
2、协程一暂停执行便立即返回 //中断协程后返回主函数,暂停结束后继续执行协程剩余的函数。
3、中断指令完成后从中断指令的下一行继续执行
4、同一时刻、一个脚本实例中可以有多个暂停的协程,但只有一个运行着的协程
5、函数体全部执行完后,协程结束
6、协程可以很好的控制跨越一定帧数后执行的行为
7、协程在性能上、相比于一般函数几乎没有更多的开销
3.创建一个协程函数
1
2
3
4
5
6
IEnumeratormethodName(Objectparameter1,Objectparameter2,...){
// to do something
yieldreturnYieldInstruction/other/null;
// to do something else
}
注意:
协同函数的返回值的类型必须是Coroutine,Coroutine继承与Yieldinstruction。
所以协同程序的返回类型就只能是null,等待的时间,等待的帧数。。由此可见WWW 也是实现了Coroutine