You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置C# Timer倒计时或Stopwatch计时速度以实现游戏慢动作效果?

实现Timer/Stopwatch响应慢动作的技巧

不用纠结原生API的限制,通过封装或替换逻辑就能实现时间缩放,以下是几个实用方案:

1. 封装时间缩放层(最通用)

放弃直接使用原生Timer/Stopwatch的原始输出,自己维护一个缩放因子,用真实时间乘以因子得到游戏内的"慢动作时间"。

以Stopwatch为例,核心代码:

private readonly Stopwatch _realStopwatch = Stopwatch.StartNew();
private float _slowMotionFactor = 1f; // 1=正常速度,0.5=慢动作,2=快进

// 获取缩放后的流逝时间(秒)
public float GetScaledGameTime()
{
    return (float)_realStopwatch.Elapsed.TotalSeconds * _slowMotionFactor;
}

游戏内所有依赖时间的逻辑(比如角色移动、技能冷却)都调用这个方法的返回值,而不是直接用Stopwatch.Elapsed。需要切换慢动作时,只需要修改_slowMotionFactor即可。

如果是Timer类的定时任务,不要用原生Timer触发事件,而是在游戏主循环里检查缩放后的时间是否达到阈值,再执行对应逻辑。

2. 动态调整Timer的触发间隔

如果用的是System.Timer这类定时触发组件,可以通过修改Interval属性适配慢动作:

private Timer _gameTimer;
private int _baseInterval = 100; // 基础触发间隔(毫秒)
private float _slowMotionFactor = 1f;

public void SetSlowMotion(float factor)
{
    _slowMotionFactor = Math.Max(factor, 0.01f); // 避免除以0
    // 慢动作时拉长触发间隔,降低触发频率
    _gameTimer.Change(0, (int)(_baseInterval / _slowMotionFactor));
}

这种方法适合简单的定时任务,比如敌人AI的状态刷新,但复杂逻辑还是推荐用第一种封装时间的方案。

3. 全局游戏时间管理器(引擎级方案)

如果是自研游戏引擎,直接封装一个全局时间管理器:

  • 内部用Stopwatch记录真实时间
  • 维护全局timeScale变量控制缩放
  • 所有游戏逻辑的计时都从这个管理器获取时间

比如:

public static class GameTime
{
    private static readonly Stopwatch _stopwatch = Stopwatch.StartNew();
    public static float TimeScale = 1f;
    public static float TotalGameTime => (float)_stopwatch.Elapsed.TotalSeconds * TimeScale;
    public static float DeltaTime { get; private set; }

    // 每帧更新计算帧间隔
    public static void Update()
    {
        static float lastTime = 0f;
        float currentTime = (float)_stopwatch.Elapsed.TotalSeconds;
        DeltaTime = (currentTime - lastTime) * TimeScale;
        lastTime = currentTime;
    }
}

需要慢动作时,只需要设置GameTime.TimeScale = 0.5f,所有依赖TotalGameTime或DeltaTime的逻辑都会自动适配。

注意事项

  • 区分游戏逻辑时间和真实时间:比如UI动画、菜单操作不需要跟随慢动作,这时候直接用原生计时即可。
  • 不要尝试修改原生Timer/Stopwatch的内部状态,它们依赖系统时钟,没有开放可修改的接口,自己封装一层更可控。

内容的提问来源于stack exchange,提问作者Tespy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:01:01