嗨,我是一名团结的初学者,我希望自游戏开始以来每5秒就能为积分增加10分,这就是我试图实现它的方式
private int score;
void Update () {
Timer = Time.time;
if (Timer > 5f) {
score += 5;
Timer -= 5f;
}
ScoreText.text = score.ToString ();
}
这是行不通的是5f之后得分迅速增加然后它会让我的游戏崩溃。
答案 0 :(得分:3)
每5秒计算一次是错误的。您不应该在每个循环中执行Timer = Time.time;
,这只会抛弃Timer
的旧值。使用Time.deltaTime
并将其添加到计时器中。
//Be sure to assign this a value in the designer.
public Text ScoreText;
private int timer;
private int score;
void Update () {
timer += Time.deltaTime;
if (timer > 5f) {
score += 5;
//We only need to update the text if the score changed.
ScoreText.text = score.ToString();
//Reset the timer to 0.
timer = 0;
}
}
答案 1 :(得分:0)
我知道我回答得有点晚,但是使用Mathf.FloorToInt(Time.timeSinceLevelLoad)