Для такого случая лучше использовать
DateTime и
TimeSpan вместе с
шаблонами форматирования:
using System;
using UnityEngine;
public class TimerTest : MonoBehaviour
{
public float timer = 90;
private DateTime timerEnd;
private void Start()
{
timerEnd = DateTime.Now.AddSeconds(timer);
}
private void Update()
{
TimeSpan delta = timerEnd - DateTime.Now;
Debug.Log(delta.Minutes.ToString("00") + ":" + delta.Seconds.ToString("00"));
if (delta.TotalSeconds <= 0)
{
Debug.Log("The END");
}
}
}
Важно помнить, что при таком способе не будет учитываться
Time.timeScale, если он вам нужен, то можете аналогичным образом вместо DateTime сохранять float со временем, но тогда минуты придётся вычислять самостоятельно. Плюсовать deltaTime в апдейте не советую. Теоретически ещё можно использовать
Timer, но я слышал, что он работает не на всех платформах.