/// <summary> /// Removes the ticker. /// </summary> /// <param name="ticker">Ticker.</param> public void RemoveTicker(ITicker ticker) { for (int i = 0; i < tickerList.Count; i++) { TickVO t = tickerList[i] as TickVO; if (t.ticker == ticker) { t.ticker = null; } } }
/// <summary> /// Determines whether this instance has ticker the specified ticker. /// </summary> /// <returns><c>true</c> if this instance has ticker the specified ticker; otherwise, <c>false</c>.</returns> /// <param name="ticker">Ticker.</param> public bool HasTicker(ITicker ticker) { for (int i = 0; i < tickerList.Count; i++) { TickVO t = tickerList[i] as TickVO; if (t.ticker == ticker) { return(true); } } return(false); }
/// <summary> /// Adds the ticker. /// </summary> /// <param name="ticker">Ticker.</param> /// <param name="delayMSTime">Delay MS time.</param> public void AddTicker(ITicker ticker, int delayMSTime = -1){ uint lastMSTimeStamp = (uint)(Time.realtimeSinceStartup * 1000); TickVO tempTicker; if (HasTicker(ticker)) { //如果已经存在,那么更新下他 tempTicker = GetTicker(ticker); } else { //没有则新建一个 tempTicker = new TickVO(); tickerList.Add(tempTicker); } tempTicker.ticker = ticker; tempTicker.delayMSTime = delayMSTime; tempTicker.lastMSTimeStamp = lastMSTimeStamp; }
private TickVO GetTicker(ITicker ticker) { if (tickerList == null) { return(null); } for (int i = 0; i < tickerList.Count; i++) { TickVO t = tickerList[i] as TickVO; if (t.ticker == ticker) { return(t); } } return(null); }
/// <summary> /// Adds the ticker. /// </summary> /// <param name="ticker">Ticker.</param> /// <param name="delayMSTime">Delay MS time.</param> public void AddTicker(ITicker ticker, int delayMSTime = -1) { uint lastMSTimeStamp = (uint)(Time.realtimeSinceStartup * 1000); TickVO tempTicker; if (HasTicker(ticker)) { //如果已经存在,那么更新下他 tempTicker = GetTicker(ticker); } else { //没有则新建一个 tempTicker = new TickVO(); tickerList.Add(tempTicker); } tempTicker.ticker = ticker; tempTicker.delayMSTime = delayMSTime; tempTicker.lastMSTimeStamp = lastMSTimeStamp; }
// Update is called once per frame /// <summary> /// Update this instance. /// </summary> public void Update() { if (tickerList == null) { return; } uint currentMSTimeStamp = (uint)(Time.realtimeSinceStartup * 1000); /// uint delay = (currentMSTimeStamp - prevMSTimeStamp); for (int i = 0; i < tickerList.Count; i++) { TickVO t = tickerList[i] as TickVO; if (t.ticker == null) { continue; } if (t.delayMSTime == -1 || currentMSTimeStamp - t.lastMSTimeStamp >= t.delayMSTime) { //当符合大于延迟时间,那么调用下 t.ticker.OnTick(); t.lastMSTimeStamp = currentMSTimeStamp; } } /// prevMSTimeStamp = currentMSTimeStamp; //清理下要删除的TickVO for (int i = 0; i < tickerList.Count; i++) { TickVO removeTick = tickerList[i] as TickVO; if (removeTick.ticker == null) { tickerList.Remove(removeTick); break; } } }