예제 #1
0
    /// -----------------------------------------------------------------------------
    /// <summary>
    /// 增加定时器
    /// </summary>
    /// <param name=""></param>
    /// <returns></returns>
    /// -----------------------------------------------------------------------------
    private bool Internal_AddTimer(string key, TIMER_MODE mode, float duration, TimerManagerHandler handler)
    {
        if (string.IsNullOrEmpty(key))
        {
            return(false);
        }

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

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

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

        return(true);
    }
예제 #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, TimerManagerHandler handler)
    {
        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);

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

        return(true);
    }
예제 #3
0
    /// -----------------------------------------------------------------------------
    /// <summary>
    /// 增加定时器
    /// </summary>
    /// <param name=""></param>
    /// <returns></returns>
    /// -----------------------------------------------------------------------------
    private bool Internal_AddTimer(string key, TIMER_MODE mode, float duration, TimerManagerHandler handler)
    {
        if (string.IsNullOrEmpty(key))
        {
            return(false);
        }

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

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

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


        return(true);
    }
예제 #4
0
 /// -----------------------------------------------------------------------------
 /// <summary>
 ///
 /// </summary>
 /// <param name=""></param>
 /// <returns></returns>
 /// -----------------------------------------------------------------------------
 public Timer(string name, TIMER_MODE mode, float startTime, float duration, TimerManagerHandler handler, TimerManager manager)
 {
     m_Name       = name;
     m_Mode       = mode;
     m_StartTime  = startTime;
     m_duration   = duration;
     m_TimerEvent = handler;
     m_Manger     = manager;
 }
예제 #5
0
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// 增加持续定时器
 /// </summary>
 /// <param name=""></param>
 /// <returns></returns>
 /// -----------------------------------------------------------------------------
 public bool AddTimerRepeat(string key, float duration, TimerManagerHandler handler)
 {
     return(Internal_AddTimer(key, TIMER_MODE.REPEAT, duration, handler));
 }
예제 #6
0
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// 增加定时器
 /// </summary>
 /// <param name=""></param>
 /// <returns></returns>
 /// -----------------------------------------------------------------------------
 public bool AddTimer(string key, float duration, TimerManagerHandler handler)
 {
     return(Internal_AddTimer(key, TIMER_MODE.NORMAL, duration, handler));
 }