Beispiel #1
0
    private bool Internal_AddTimer(string key, TIMER_MODE mode, float duration, TimerManagerHandlerArgs handler, params object[] args)
    {
        if (string.IsNullOrEmpty(key))
        {
            return(false);
        }

        if (duration < 0.0f)
        {
            return(false);
        }

        Timer timer = new Timer(key, mode, Time.time, duration, handler, this, args);

        if (m_AddTimerList.ContainsKey(key))
        {
            m_AddTimerList[key] = timer;
        }
        else
        {
            m_AddTimerList.Add(key, timer);
        }

        return(true);
    }
Beispiel #2
0
    /// <summary>
    /// 添加延时触发心跳
    /// </summary>
    /// <param name="key">键值</param>
    /// <param name="duration">延时时间</param>
    /// <param name="handler">回调句柄</param>
    /// <returns>添加成/败</returns>
    public static bool AddDelayTimer(string key, float duration, TimerManagerHandlerArgs handler, params object[] args)
    {
        if (string.IsNullOrEmpty(key))
        {
            return(false);
        }

        if (duration < 0.0f)
        {
            if (handler != null)
            {
                handler();
            }
            return(true);
        }

        Timer timer = new Timer(key, TIMER_MODE.DELAYTIME, Time.realtimeSinceStartup, duration, handler, args);

        if (m_TimerList.ContainsKey(key))
        {
            m_TimerList[key] = timer;
        }
        else
        {
            m_TimerList.Add(key, timer);
        }

        return(true);
    }
Beispiel #3
0
    private bool Internal_AddTimer(string key, TIMER_MODE mode, float duration, TimerManagerHandlerArgs handler, int times = 0, params object[] args)
    {
        if (string.IsNullOrEmpty(key))
        {
            return(false);
        }

        if (duration < 0.0f)
        {
            return(false);
        }

        var olderTimer = m_AddTimerList.Find(p => p.m_Name == key);

        if (olderTimer != null)
        {
            olderTimer.Copy(key, mode, Time.time, duration, handler, times, this, args);
        }
        else
        {
            Timer timer = new Timer(key, mode, Time.time, duration, handler, times, this, args);
            m_AddTimerList.Add(timer);
        }


        return(true);
    }
Beispiel #4
0
 public Timer(string name, TIMER_MODE mode, float startTime, float duration, TimerManagerHandlerArgs handler, TimerManager manager, params object[] args)
 {
     m_Name           = name;
     m_Mode           = mode;
     m_StartTime      = startTime;
     m_duration       = duration;
     m_TimerArgsEvent = handler;
     m_Manger         = manager;
     m_Args           = args;
 }
Beispiel #5
0
 public void Copy(string name, TIMER_MODE mode, float startTime, float duration, TimerManagerHandlerArgs handler, int times, TimerMgr manager, params object[] args)
 {
     m_Name           = name;
     m_Mode           = mode;
     m_StartTime      = startTime;
     this.Duration    = duration;
     m_TimerArgsEvent = handler;
     m_Manger         = manager;
     m_Args           = args;
     m_Times          = times;
 }
Beispiel #6
0
 public bool AddTimerRepeat(string key, float duration, TimerManagerHandlerArgs handler, params object[] args)
 {
     return(Internal_AddTimer(key, TIMER_MODE.REPEAT, duration, handler, args));
 }