Я строю пустую игру, в которой есть пара сцен.
я хотел знать, есть ли лучший способ сделать таймер, потому что, когда я вхожу в сцену с таймером, у меня есть задержка перед обновлением текста
Я использую Coroutine для вычитания каждые 1 сек.
public class CoalResarch : MonoBehaviour
{
bool CreatingWords = false;
public bool timerIsDone = false;
public static float hour = 1;
public static float min = 0;
public static float sec = 1;
void Update()
{
if (CreatingWords == false)
{
CreatingWords = true;
StartCoroutine(DisplayWoodMinningSec());
}
}
public IEnumerator DisplayWoodMinningSec()
{
//Timer
if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("ResearchScene"))
{
GlobalResearch.CoalTimer.text = "0" + hour + ":" + min + ":" + Mathf.Round(sec);
}
yield return new WaitForSeconds(1);
sec -= 1;
if (timerIsDone == false && sec < 0)
{
if (min > 0)
{
min -= 1;
sec = 59;
}
else
{
if (hour > 0)
{
hour -= 1;
min = 59;
sec = 59;
}
else
{
sec = 0;
}
}
if (hour == 0 && min == 0 && sec == 0)
{
Debug.Log("Finish!");
if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("ResearchScene"))
{
// GlobalResearch.CoalTimer.text = "Finished !";
}
}
}
if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("ResearchScene"))
{
GlobalResearch.CoalTimer.text = "0" + hour + ":" + min + ":" + Mathf.Round(sec);
}
CreatingWords = false;
}
}
Я просто хочу, чтобы он работал более плавно, помогите, пожалуйста:)