/// <summary> /// 1秒为1000 /// </summary> public int RegisterEvent(float maxTime, Action func) { m_startId++; CTimeEvent ev = new CTimeEvent(); ev.curTime = 0; ev.maxTime = maxTime; ev.endEvent = func; m_timeEvent.Add(m_startId, ev); return(m_startId); }
public override void Update(float time, float fdTime) { Dictionary <int, CTimeEvent> .Enumerator map = m_timeEvent.GetEnumerator(); while (map.MoveNext()) { CTimeEvent ev = map.Current.Value; ev.curTime += fdTime; if (ev.curTime >= ev.maxTime) { ev.endEvent(); ev.endEvent = null; m_delList.Add(map.Current.Key); } } for (int i = 0; i < m_delList.Count; i++) { m_timeEvent.Remove(m_delList[i]); } m_delList.Clear(); }