协程(Coroutine)※
协程是 Unity 中用于分帧执行的机制,允许在方法执行中间暂停(yield),等待一段时间或条件后继续,常用于延迟、动画、异步流程。
基本用法※
IEnumerator MyCoroutine()
{
Debug.Log("Start");
yield return new WaitForSeconds(2f); // 等待 2 秒
Debug.Log("After 2s");
yield return null; // 等待下一帧
Debug.Log("Next frame");
}
// 启动
StartCoroutine(MyCoroutine());
// 或 StartCoroutine("MyCoroutine");
// 停止
StopCoroutine(MyCoroutine());
StopAllCoroutines();
常用 yield 指令※
yield return null; // 下一帧
yield return new WaitForSeconds(2f); // 等待秒
yield return new WaitForSecondsRealtime(2f); // 真实时间(不受时间缩放)
yield return new WaitForEndOfFrame(); // 帧末
yield return new WWW(url); // 旧版网络请求
yield return StartCoroutine(other); // 等待另一个协程
注意※
- 协程不是线程,依然运行在主线程
- 对象销毁/禁用后协程停止
- 长循环内要 yield 防止卡帧