private void Update() { if (_isTimerStart) { if (DateTime.Now >= _lastTime) { _isTimerStart = false; CallOnTimerEnd?.Invoke(); } } }
private void FixedUpdate() { switch (_status) { case Status.Idle: return; case Status.Start: _endTime = DateTime.Now.AddSeconds(_seconds); _status = Status.InProgress; break; case Status.InProgress: if (DateTime.Now >= _endTime) { _status = Status.End; } break; case Status.End: CallOnTimerEnd?.Invoke(); switch (_mode) { case Mode.Once: _status = Status.Idle; break; case Mode.Сontinued: _status = Status.Start; break; } break; } }