分数更新。每 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));
}
我是 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));
}