常见用途
| 用途 | 示例 |
|---|---|
等待几秒后执行逻辑 | 比如“3秒后切换场景” |
倒计时/间隔执行 | 每隔1秒更新倒计时文字 |
循环动画控制 | 比如闪烁、淡入淡出等 |
模拟异步加载 | 分帧加载资源等 |
基本语法结构
定义协程(返回类型是 IEnumerator)
IEnumerator MyCoroutine()
{
Debug.Log("第一步");
yield return new WaitForSeconds(2f); // 暂停2秒
Debug.Log("第二步(2秒后执行)");
}
启动协程
void Start()
{
StartCoroutine(MyCoroutine()); // 启动协程
}
常用的 yield return 类型
| 语句 | 功能 |
|---|---|
| 暂停到下一帧 |
| 暂停指定秒数 |
| 等到条件为 true |
| 等到条件为 false |
| 提前终止协程 |
示例:倒计时协程
IEnumerator Countdown(int seconds)
{
while (seconds > 0)
{
Debug.Log("倒计时:" + seconds);
yield return new WaitForSeconds(1f);
seconds--;
}
Debug.Log("时间到!");
}
void Start()
{
StartCoroutine(Countdown(5)); // 从 5 倒计时
}
一句话理解协程:
协程 = 可以暂停并在之后继续执行的方法。



