Beispiel #1
0
 private void Update()
 {
     if (_isTimerStart)
     {
         if (DateTime.Now >= _lastTime)
         {
             _isTimerStart = false;
             CallOnTimerEnd?.Invoke();
         }
     }
 }
Beispiel #2
0
        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;
            }
        }