概念
在主线程运行的同时,开启另一段逻辑处理,来协同当前程序运行。线程的调度由操作系统完成,协程的调度。
API
开启协程:MonoBehavior.StartCoroutine(IEnumeratorroutine)
终止协程:MonoBehavior.StopCoroutine(IEnumeratorroutine)
终止当前 behaviour 上的所有协程:MonoBehavior.StopAllCoroutines()
协同程序中的细节
- 协程与普通函数一样,可被多次调用。
- 协程一旦被开启,总是试图将方法中的代码执行完,然后停止。
- 协程内若遇到 yield return null/0/1....;表示剩余代码将在下一帧继续执行。
- 在协程中若遇到 yield return new WaitForSeconds(n);表示剩余代码将在 n 秒后执行。
代码例子
{
private void Start()
{
// 开启协程
StartCoroutine("Fun");
// 终止协程
StopCoroutine("Fun");
}
IEnumerator Fun()
{
// 在主线程运行的同时处理的代码
yield return 0;
}
}