我试图使2分钟的计时器为我的游戏使用协程。它开始从游戏的biginning倒计时。一切都很好,直到达到1分钟。在那之后,有些东西出错了(我认为错误是在yield
命令中,因为当我调试代码时,它抛出了那一行)。
错误:
有一个链接与链接到GIF显示错误:https://giphy.com/gifs/Pk8t1StrR8dmip30NN
private int seconds;
private int minutes = 1;
void Start()
{
seconds = 59;
timer.text = "2:00";
StartCoroutine(CountSeconds());
}
IEnumerator CountSeconds()
{
while (true)
{
seconds--;
if (seconds >= 10)
{
timer.text = $"{minutes} : {seconds}";
}
else
{
timer.text = $"{minutes} : 0{seconds}";
if (seconds == 0)
{
seconds = 59;
minutes--;
}
}
yield return new WaitForSeconds(1f);
}
}
}
请帮我解决这个荒谬的问题。
2条答案
按热度按时间y53ybaqx1#
我会采取一种不同的方法,使用TimeSpan来倒计时分钟,因为这会让一切变得更容易。
u7up0aaq2#
检查你的文本,它可以显示0:59或0:58?或者确保你有其他逻辑使用文本,看起来像当secnodes == 0然后设置为59,但下一个循环它--设置为58,0:59已经跳转。你可以在开始记录时使用var startime = Time。time;当你需要seconds--时,使用senconds -(Time.time - startTime);