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

Unity 5秒循环重复倒计时功能实现咨询,附现有代码

Unity 5秒循环倒计时实现方案

现有代码问题说明

  • 你当前使用Time.time(游戏从启动到当前的总时长)计算剩余时间,倒计时归零后无法重置计时起点
  • stopTimer设为true后没有重置逻辑,导致倒计时跑完一次就永久停止
  • 代码中用到的gameTime变量未定义,无法直接运行

修改后可直接运行的代码

using UnityEngine;
using UnityEngine.UI;

public class LoopTimer : MonoBehaviour
{
    // 倒计时总时长,默认5秒,可在Inspector直接修改
    public float gameTime = 5f;
    [HideInInspector] public float time1;
    // 请在Inspector拖入对应的UI组件
    public Text timerText;
    public Slider timerSlider;

    void Start()
    {
        // 初始化倒计时
        time1 = gameTime;
        timerSlider.maxValue = gameTime;
        timerSlider.value = gameTime;
    }

    void Update()
    {
        timerR();
    }

    public void timerR()
    {
        // 逐帧减去本帧流逝的时间
        time1 -= Time.deltaTime;

        // 剩余时间小于等于0时直接重置,进入下一轮倒计时
        if (time1 <= 0)
        {
            time1 = gameTime;
        }

        // 分秒格式化逻辑保留你原来的写法
        int minutes = Mathf.FloorToInt(time1 / 60);
        int seconds = Mathf.FloorToInt(time1 - minutes * 60f);
        string textTime = string.Format("{0:0}:{1:00}", minutes, seconds);

        // 更新UI
        timerText.text = textTime;
        timerSlider.value = time1;
    }
}

使用说明

  • 把脚本挂载到场景内任意激活的游戏物体上
  • 在Inspector面板把场景里的倒计时文本、滑动条组件拖到脚本对应的参数槽位
  • 运行后即可自动启动5秒循环倒计时,需要修改时长直接调整gameTime的数值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:45:02