Beispiel #1
0
 public void DelListener(GTTimer timer)
 {
     if (timer == null)
     {
         return;
     }
     mDeleteBuffer.Add(timer.key);
 }
Beispiel #2
0
 public void Execute()
 {
     for (int i = 0; i < mAddBuffer.Count; i++)
     {
         GTTimer item = mAddBuffer[i];
         mTimers.Add(item.key, item);
     }
     mAddBuffer.Clear();
     if (mTimers.Count > 0)
     {
         Dictionary <int, GTTimer> .Enumerator em = mTimers.GetEnumerator();
         while (em.MoveNext())
         {
             GTTimer item = em.Current.Value;
             item.currTime = Time.realtimeSinceStartup;
             if (Time.realtimeSinceStartup - item.startTime >= item.callTime)
             {
                 if (item.callback != null)
                 {
                     item.callback();
                 }
                 item.startTime = Time.realtimeSinceStartup;
                 if (item.tick > 0)
                 {
                     item.currTick++;
                     if (item.tick == item.currTick)
                     {
                         mDeleteBuffer.Add(item.key);
                     }
                 }
             }
             if (item.pause == true)
             {
                 mDeleteBuffer.Add(item.key);
             }
         }
         em.Dispose();
     }
     for (int i = 0; i < mDeleteBuffer.Count; i++)
     {
         mTimers.Remove(mDeleteBuffer[i]);
     }
     mDeleteBuffer.Clear();
 }
Beispiel #3
0
    public GTTimer AddListener(float callTime, Callback callback, int tick = 1)
    {
        if (callback == null)
        {
            return(null);
        }
        if (callTime <= 0)
        {
            return(null);
        }
        mIndex++;
        GTTimer item = new GTTimer();

        item.key       = mIndex;
        item.callTime  = callTime;
        item.callback  = callback;
        item.tick      = tick;
        item.currTick  = 0;
        item.startTime = Time.realtimeSinceStartup;
        item.currTime  = item.startTime;
        mAddBuffer.Add(item);
        return(item);
    }
 public override void Trigger()
 {
     base.Trigger();
     this.m_Timer = GTTimerManager.Instance.AddListener(Time, Finish);
 }