渐进式编程课
Unity 目录
第 18 课2026.09.24

暂停游戏时间后,仍让训练提示按现实时间继续计时。

第 18 课:暂停游戏时按真实时间等待

  • 日期:2026-09-24
  • 课程序号:第 18 课
  • 知识点:WaitForSecondsRealtime

用途或适用场景

暂停游戏时间后,仍让训练提示按现实时间继续计时。

核心概念

WaitForSeconds 使用受 Time.timeScale 影响的时间;WaitForSecondsRealtime 使用真实时间。本课只替换第 17 课协程中的等待指令,保留 running 的去重和自然结束清理。

最小代码或操作示例

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

3~5 分钟练习

运行中将 UnityEngine.Time.timeScale 临时设为 0,观察日志后恢复为 1。

参考答案

日志仍按真实时间约每秒出现一次;三次结束后 running 清空,可再次启动。

与上一课的联系

继承第 17 课的三次有界 Practice()、Begin() 和末尾清空 running;本课只把等待替换为不受时间缩放影响的版本;下一课可比较两种等待对暂停菜单的适用场景。

时效校验

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

官方参考