예제 #1
0
        private void Update()
        {
            if (!isRunning)
            {
                return;
            }

            float timePassed = Time.deltaTime;

            if (UseWaitSecondsRealTime)
            {
                timePassed = Time.unscaledDeltaTime;
            }

            currentInterval -= timePassed;
            intervalCounter += timePassed;

            if (currentInterval < 0f)
            {
                currentInterval = 0f;
            }

            if (intervalCounter >= TimerInterval)
            {
                OnIntervalElapsed.SafeInvoke(currentInterval);
                intervalCounter = 0f;
            }

            if (currentInterval <= 0f)
            {
                OnTimerElapsed.SafeInvoke();
                isRunning = false;
            }
        }
예제 #2
0
        /// <summary>
        /// Starts the timer
        /// </summary>
        /// <param name="ResetIfRunning">True to reset the countdown if it's already running</param>
        public override void StartTimer(bool ResetIfRunning = false)
        {
            if (isRunning)
            {
                if (ResetIfRunning)
                {
                    currentInterval = Duration;
                }
                else
                {
                    return;
                }
            }

            currentInterval = Duration;
            intervalCounter = 0f;
            isRunning       = true;
            OnTimerStarted.SafeInvoke();
            OnIntervalElapsed.SafeInvoke(currentInterval);
        }
        private void Update()
        {
            if (!isRunning)
            {
                return;
            }

            float timePassed = Time.deltaTime;

            if (UseWaitSecondsRealTime)
            {
                timePassed = Time.unscaledDeltaTime;
            }

            secondsPassed   += timePassed;
            intervalCounter += timePassed;

            if (intervalCounter >= NotificationInterval)
            {
                OnIntervalElapsed.SafeInvoke(secondsPassed);
                intervalCounter = 0f;
            }
        }