unity3d - unity:CountDownTimer 在到达 00:00:00 时停止
问题描述
所以我有这段代码,它基本上是一个倒数计时器,我的问题是我希望它在到达 00:00:00 时停止。
目前,当代码达到 00:00:00 时,秒数从 00:00:59 开始重新计算,所以我希望是否有人可以帮助我。
public class CountDownTimer : MonoBehaviour
{
public Text timerText;
public float secondsCount;
public int minuteCount;
public int hourCount;
void Update()
{
UpdateTimerUI();
}
//call this on update
public void UpdateTimerUI()
{
//set timer UI
if(secondsCount > 0)
secondsCount -= Time.deltaTime;
timerText.text = hourCount + "h:" + minuteCount + "m:" + (int)secondsCount + "s";
if (secondsCount <= 0)
{
if(minuteCount > 0)
minuteCount--;
//if(minuteCount!= 0)
secondsCount = 60;
}
else if (minuteCount <= 0)
{
if(hourCount > 0)
hourCount--;
if(hourCount != 0)
minuteCount = 60;
}
if (secondsCount <= 0 && minuteCount <= 0 && hourCount <= 0)
{
Debug.Log("gameOver");
}
}
}
解决方案
我使用协程和TimeSpan
(伪代码)重写了它:
private IEnumerator Countdown(int totalSeconds)
{
while (totalSeconds > 0)
{
var time = TimeSpan.FromSeconds(totalSeconds);
timerText.text = $"{time.Hours}:{time.Minutes}:{time.Seconds}";
yield return new WaitForSeconds(1);
totalSeconds--;
}
Debug.Log("Game over");
}
推荐阅读
- php - 如何使用 php 代码在 WHM/Cpanel 中以编程方式创建数据库?
- c - C中原始类型的位
- neural-network - 如何使用进化算法创建适当的前馈神经网络
- c# - 如果抛出异常,.Net Web API 有时根本不返回任何响应
- powershell - 使用 Search-ADAccount 查找所有未设置帐户到期日期的帐户
- c++ - 在 C++ 中实现地图矢量
- angular7 - 存储哪个树节点是展开 mat-tree 嵌套的?
- excel - 如何计算范围参数中的项目数?
- excel - 从Excel中一系列单元格中以逗号分隔的一组数字中计算特定数字
- python - 如何统一使用 TensorFlow python 项目,然后可以构建到 iOS