private TimerEntity Spawn() { if (m_EntityPools.Count > 0) { TimerEntity t = m_EntityPools[m_EntityPools.Count - 1]; m_EntityPools.RemoveAt(m_EntityPools.Count - 1); return(t); } return(new TimerEntity()); }
/// <summary> /// 增加定时器,可以指定循环次数 /// </summary> /// <param name="rate">触发频率(单位毫秒)</param> /// <param name="ticks">循环次数,如果是0则不会自动删除</param> /// <param name="callBack">触发回调函数</param> /// <returns>新定时器id</returns> public int AddLoop(long rate, int ticks, Action <int, string> callBack, string param = "") { if (ticks <= 0) { ticks = 0; } TimerEntity newTimer = this.Spawn(); newTimer.Init(++m_idCounter, rate, ticks, callBack, param); m_Timers.Add(newTimer); return(newTimer.id); }
private void Despawn(TimerEntity t) { m_EntityPools.Add(t); }