Example #1
0
        public void FixedUpdate()
        {
            List <TimerHandler> removeList = new List <TimerHandler>();

            if (timerDict == null)
            {
                timerDict = new Dictionary <TimerHandler, TimerInfo>();
            }
            foreach (KeyValuePair <TimerHandler, TimerInfo> timerPair in timerDict)
            {
                if (timerPair.Value.count == 0)
                {
                    removeList.Add(timerPair.Key);
                }
            }
            foreach (TimerHandler timerHandler in removeList)
            {
                timerDict.Remove(timerHandler);
                log.Debug("Remove TimerHandler : " + timerHandler);
            }

            TimerInfo timerInfo = null;

            foreach (KeyValuePair <TimerHandler, TimerInfo> timerPair in timerDict)
            {
                timerInfo = timerPair.Value;
                if ((timerInfo.lastTimer + timerInfo.delay) <= Time.realtimeSinceStartup * 1000)
                {
                    if (timerInfo.count != -1)
                    {
                        timerInfo.count--;
                    }
                    timerInfo.OnEventHander();
                    timerInfo.lastTimer += timerInfo.delay;
                }
            }
        }