2017-01-13 5 views
1

Привет Я новичок в единстве, и я хочу, чтобы иметь возможность добавить 10 очков к счету через каждые 5 секунд, так как игра началась, это, как я пытался реализоватьTime Based Scoring Unity

private int score; 
void Update() { 

    Timer = Time.time; 

    if (Timer > 5f) { 

     score += 5; 
     Timer -= 5f; 
    } 
    ScoreText.text = score.ToString(); 

} 

Это не работает, что происходит, это счет быстро увеличивается после 5f, а затем он разбивает мою игру.

ответ

2

Математика для расчета каждые 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; 
    } 
} 
+0

спасибо, что это работает! – user3679986

+0

Не забудьте принять ответ, когда он позволит вам. –