Exemplo n.º 1
0
 /// <summary>
 /// 计时器运行
 /// </summary>
 void Run()
 {
     if (objects.Count == 0)
     {
         return;
     }
     for (int i = 0, imax = objects.Count; i < imax; i++)
     {
         TimerInfo o = objects[i];
         if (o.delete || o.stop)
         {
             continue;
         }
         o.tick++;
         if (o.tick > o.tickend)
         {
             o.Func();
             //Debug.Log(Time.realtimeSinceStartup + " " + o.tick + " " + o.tickend);
             if (!o.loop)
             {
                 o.delete = true;
             }
             else
             {
                 o.tick = 0;
             }
         }
     }
     /////////////////////////清除标记为删除或强制停止的事件///////////////////////////
     for (int i = objects.Count - 1; i >= 0; i--)
     {
         if (objects[i].delete)// || objects[i].stop)
         {
             objects[i].Func = null;
             objects.Remove(objects[i]);
             if (Instance != null)
             {
                 Instance.timerNum = objects.Count;
             }
             break;
         }
     }
 }