Я хотел бы создать счетчик времени для моей игры Unity 3D.Как создать счетчик времени с использованием C# в Unity 3D
Я уже пытался использовать Time.time, но я не могу сбросить таймер без перезагрузки всей игры. timeSinceLevelLoad не работает для меня, потому что требуется перезагрузка уровня.
Я попытался использовать Time.deltaTime внутри FixedUpdate, но я чувствую, что время не правильное. Поэтому я не могу перезагрузить игру или уровень, что я сделал свое состояние машины, чтобы быть одна сцена только:
switch (currentState) {
case GameStates.START:{
player.position = startPositionPlayer;
currentState = GameStates.WAITGAME;
timeScore.renderer.enabled = false;
}
break;
case GameStates.WAITGAME:{
player.position = startPositionPlayer;
timeScore.renderer.enabled = false;
}
break;
case GameStates.INGAME:{
time = Time.time;
timeScore.text = time.ToString();
}
break;
case GameStates.GAMEOVER:{
currentState = GameStates.RANKING;
player.position = startPositionPlayer;
enemy.position = startPositionEnemy;
timeScore.renderer.enabled = false;
}
break;
case GameStates.RANKING:{
player.position = startPositionPlayer;
enemy.position = startPositionEnemy;
timeScore.renderer.enabled = false;
}
break;
}
}
Так вся моя игра работает в одной сцене. Эта функция используется для перезапуска игры с использованием GameStates.INGAME:
public void StartGame(){
time = 0f;
timeScore.renderer.enabled = true;
currentState = GameStates.INGAME;
}
Моим вопрос: Как я могу создать прогрессивный счетчик времени, который можно сбросить без необходимости перезагрузки игры, сцены или уровня?