倒数计时器加速,与IEnumerator不一致

时间:2018-09-11 22:12:18

标签: visual-studio unity3d countdown

我正在尝试创建一个一致的倒数计时器,该计时器将在120秒内从1,000变为0。

我尝试使用此方法:

    public IEnumerator StartCountdown()
    {
        while (scoreValue > 0)
        {
            yield return new WaitForSeconds(1.0f);
            scoreValue--;
        }
    }

但是由于某种原因,倒数随着时间的流逝而加速,并根据scoreValue的值达到不同的负数,而不是停止为0。

例如,如果scoreValue等于1000,则达到-380

1 个答案:

答案 0 :(得分:0)

如之前的评论所述,您可能已经多次列出了该方法。您调用该方法的次数越多,其速度将越快。您只需要一个带有方法名称的StartCoroutine方法。观看控制台,其中列出的代码将其一一递减。 这是代码。一切似乎都还可以。

float scoreValue = 1200;
void Start () {
    StartCoroutine(StartCountdown());
}

// Update is called once per frame
void Update () {

}

public IEnumerator StartCountdown()
{
    while (scoreValue > 0)
    {
        yield return new WaitForSeconds(1.0f);
        scoreValue--;
        print("Score At " + scoreValue.ToString());
    }
}