分数更新。每 5 秒变化一次

Score update. Change in every 5 seconds

我是 unity 的新手,正在开发一款 2d 游戏。我希望我的游戏每 5 秒更新一次“scoretext”,并且我希望它更新为 +1。但是我的代码不起作用。它在 0.000...1 秒内更新(我的意思是程序不会等待 5 秒来更新)。我怎样才能解决这个问题?谢谢!

public Text scoretext;
public int score;



IEnumerator scoreup()
    {
        score++;
        scoretext.text = score.ToString();
        yield return new WaitForSeconds(5);
    }

void Update()
    {
        StartCoroutine("scoreup");
    }

解决方案 1:

InvokeRepeating代码的简单使用:

void ScoreUp()
{
    score++;
    scoretext.text = score.ToString();
}
void Start()
{
    InvokeRepeating(nameof(ScoreUp), 0f, 5f); // 0=delay, 5f = repeat Time
}

解决方案 2:

使用 IEnumerator:

IEnumerator ScoreUp(int amount = 1)
{
    while (true)
    {
        score += amount;
        scoretext.text = score.ToString();
        yield return new WaitForSeconds(5);
    }

}
private void Start()
{
    StartCoroutine(ScoreUp(2));
}