常见用途
用途 | 示例 |
---|---|
等待几秒后执行逻辑 | 比如“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 倒计时 }
一句话理解协程:
协程 = 可以暂停并在之后继续执行的方法。