渐进式编程课
Unity 目录
第 16 课2026.09.22

让上一课防重入的练习协程在三次等待后自行结束,为下一课清空引用创造确定的结束点。

第 16 课:将练习协程设为有限次数

  • 日期:2026-09-22
  • 课程序号:第 16 课
  • 知识点:有界协程循环

用途或适用场景

让上一课防重入的练习协程在三次等待后自行结束,为下一课清空引用创造确定的结束点。

核心概念

for 控制循环次数;WaitForSeconds 仍是上一课沿用的等待方式。本课不改变 Begin() 的去重逻辑。

最小代码或操作示例

csharp
System.Collections.IEnumerator Practice() {
    for (int i = 0; i < 3; i++) {
        yield return new UnityEngine.WaitForSeconds(1f);
        UnityEngine.Debug.Log(i);
    }
}

3~5 分钟练习

沿用上一课的 Begin(),启动后观察日志并再次点击。

参考答案

日志依次输出 0、1、2;协程结束,但 running 仍非空,所以再次点击被挡住。下一课解决这一点。

与上一课的联系

继承第 15 课的 running 与 Begin() 防重入代码;本课只把 Practice() 改为三次有界循环;下一课在循环正常结束后清空引用。

时效校验

时效校验:2026-09-24(已打开 Unity 6.6 当前 WaitForSeconds 与 StartCoroutine 官方 API;未见本课 API 废弃标记)。

官方参考