Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// <summary>
- /// Ticks all timers if necesarry
- /// </summary>
- private void TickAllTimers()
- {
- try
- {
- for (int i = 0; i < allTimers.Count; i++)
- {
- if (!allTimers[i].Paused)
- {
- bool status = allTimers[i].Tick(Time.deltaTime);
- if (i >= allTimers.Count || allTimers[i] == null)
- continue;
- bool fixedStatus = allTimers[i].FixedTick(Time.fixedDeltaTime);
- if (status || fixedStatus)
- {
- if (i >= allTimers.Count)
- break;
- if (allTimers[i] != null && (allTimers[i].MarkForCleanUp || !allTimers[i].Recursive))
- timersToRemove.Add(allTimers[i]);
- if (allTimers[i].OnTimerEnded != null)
- allTimers[i].OnTimerEnded.Invoke();
- if (i >= allTimers.Count || allTimers[i] == null)
- continue;
- if (i < allTimers.Count && allTimers[i].Recursive)
- allTimers[i].Reset();
- }
- }
- }
- if (timersToRemove.Count == 0)
- return;
- for (int i = 0; i < timersToRemove.Count; i++)
- AllTimers.Remove(timersToRemove[i]);
- timersToRemove.Clear();
- }
- catch(Exception e)
- {
- Debug.Log("Exception thrown in timer.");
- Debug.LogException(e);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement