协程的定义:
协程是一个分部执行,遇到条件(yield return 语句)会挂起,直到条件满足才会被唤醒执行后面的代码。
Unity在每一帧都会去处理对象上的协程,主要是在Update后去处理协程(检查协程的条件是后满足)。协程跟Update()实质上是一样的,都是Unity每帧都会去处理的函数。
协程函数是用关键字IEnumerator来声明的函数,在函数中配合用yield return使用,用StartCoroutine()函数来调用。上一个例子先:
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;
public class Done_GameController : MonoBehaviour
{
public float startWait;
public float waveWait;
void Start ()
{
StartCoroutine (SpawnWaves ());
}
void Update ()
{
}
IEnumerator SpawnWaves ()
{
yield return new WaitForSeconds (startWait);
while (true)
{
yield return new WaitForSeconds (waveWait);
}
}
}
yield return可以返回值可以如下:
yield return null; // 下一帧再执行后续代码
yield return 0; //下一帧再执行后续代码
yield retu