倒计时器加速并且与IEnumerator不一致

问题描述 投票:0回答:1

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

我试着用这个方法:

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

但是随着时间的推移,由于某种原因倒计时加速,并且它根据scoreValue值而不是在0处停止而达到不同的负数。

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

visual-studio unity3d countdown
1个回答
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());
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.