При нажатии на кнопку "старт" запускается корутина(таймер) , который считает сколько времени ожидает игрок.
При нажатии на "отмена", корутина должна перестать работать.
Если после отмены начать старт ещё раз, то таймер должен начинаться с нуля.
Всё работает как надо, НО если быстро клацать старт-стоп, то с каждым клацанием ускоряется счётчик таймера
public void StartTimer() // запуск таймера по нажатию на кнопку
{
StartCoroutine(WaitTimer());
isSearch = true;
}
public void StopTimer() // отмена
{
isSearch = false;
//StopCoroutine(WaitTimer()); // так тоже пытался, но толку нет
}
private IEnumerator WaitTimer()
{
min= 0;
sec= 0;
if (isSearch == false)
{
yield break;
}
while (isSearch == true)
{
if(sec== 59)
{
min++;
sec= -1;
}
sec++;
timer.text = min.ToString("D2") + ":" + sec.ToString("D2");
yield return new WaitForSeconds(1);
}
}