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

unity之协程

2015-09-09 19:36 459 查看
一协程与多线程的区别

多线程:例如:一个线程连接网络,另一个线程加载UI,表面看他俩是并行的,各干个的,实际上,在内部他俩是交替进行的

协程:它是一个线程,这个线程可以随时切换进行加载UI,又随时切换连接网络(类似于操作系统的中断)

协程的优点:不需要来回切换线程,高效啦

using UnityEngine;
using System.Collections;

public class MyCor : MonoBehaviour {

private int a = 0;
void Start () {

print("Start");
StartCoroutine("MyCoroutine");
print("StartLater");
}

void Update () {

print("update"+a);
print("updateMyCoroutineBefore");
//任何地方开启协程的时候,它会进入到协程方法,当遇到yield时,就返回到调用它的地方
//每一次Update执行完之后,它会搜索所有的协程,看yield语句所返回的值是否完成(yield之前的语句不看了),
//如果完成了,就执行yield之后的事情,执行完之后,在进入下一帧,也就是在执行update
//第一帧的时候,update不会搜索协程
StartCoroutine("MyCoroutine");
print("updateMyCoroutineAfter");
a++;
}

IEnumerator MyCoroutine() {

print("before");
yield return null;
print("after");
}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ui 协程