private void DecreaseTime() { if (!IsPaused && !IsFinished) { _currentTime -= Time.deltaTime; } if (_currentTime <= 0f && !IsFinished) { _currentTime = 0f; IsFinished = true; OnTimerFinish?.Invoke(); } }
private IEnumerator Timer() { yield return(new WaitForSeconds(Converter.MillisecondsToSeconds(TimeStep))); this.Milliseconds -= TimeStep; if (OnTimeStepInterval != null) { OnTimeStepInterval.Invoke(Milliseconds); } if (Milliseconds <= 0) { if (OnTimerFinish != null) { OnTimerFinish.Invoke(); } Destroy(this); } else { StartCoroutine("Timer"); } }
private IEnumerator StartTimerCoroutine(float duration) { yield return(new WaitForSeconds(duration)); OnTimerFinish?.Invoke(); }
public void EndEarly() { OnTimerFinish?.Invoke(); StopAllCoroutines(); }