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
相关产品推荐
相关产品推荐

