void FixedUpdate() { if (timersDic.Count == 0) { return; } List <int> overTimers = new List <int> (); var e = timersDic.GetEnumerator(); TimerItem timerItem = null; while (e.MoveNext()) { timerItem = e.Current.Value; timerItem.UpdateTime(Time.fixedDeltaTime); if (timerItem.over) { overTimers.Add(timerItem.Id); } } overTimers.ForEach(timerId => { if (timersDic.ContainsKey(timerId)) { timersDic.Remove(timerId); } }); }
public void Remove(Action handle) { int timerId = handle.GetHashCode(); if (timersDic.ContainsKey(timerId)) { TimerItem timerItem = timersDic[timerId]; if (timerItem != null) { timerItem.over = true; } } }
public TimerItem Add(float eTime, Action handle) { if (timersDic.ContainsKey(handle.GetHashCode()) == false) { TimerItem timerItem = new TimerItem(eTime); timersDic.Add(handle.GetHashCode(), timerItem); timerItem.mIntervalHandler = handle; return(timerItem); } else { return(timersDic[handle.GetHashCode()]); } }