协同函数 Coroutine :一段协作Update函数完成功能实现的函数,可以理解为开启一段新的线程(本质不是开启新的线程,只是在Update执行完之后,运行协同函数,具体查看unity函数生命周期表)
协同函数的定义:
IEnumerator 函数名(传递参数)
{
//something work here
yield return 条件;
//others work here
}
协同函数调用方式:使用StartCoroutine(string methodName)和StartCoroutine(IEnumerator routine)都可以开启一个线程。区别在于使用字符串作为参数可以开启线程并在线程结束前终止线程,相反使用IEnumerator 作为参数只能等待线程的结束而不能随时终止(除非使用StopAllCoroutines()方法);另外使用字符串作为参数时,开启线程时最多只能传递一个参数,并且性能消耗会更大一点,而使用IEnumerator 作为参数则没有这个限制。
代码示例
void Start(){
StartCoroutine(Test());
}
void Update(){
Debug.Log("Nowardtime is "+Time.time);
}
IEnumerator Test(){
WWW www =