public SingleTimeBase(float t, TimeCallBack callb, params object[] args) { TimeCount = t; CallBack = callb; ArgsObj = args; bFlagDelete = false; }
/// <summary> /// 停止计时器 /// </summary> public void Stop() { m_timeCallBack = null; m_restcount = 0; m_resttime = 0; m_switch = false; if (this.onStop != null) { this.onStop(); } m_count = 0; m_totalTime = 0; EventManager.instance.Dispatch(GameEvent.STOP_COROUTINE, StartLoop()); }
private IEnumerator Timer() { float intervalTime = 1f; while (true) { intervalTime -= Time.deltaTime; if (intervalTime <= 0) { intervalTime = 1f; TimeCallBack?.Invoke(); timekeeping = timekeeping > 0 ? timekeeping - 1 : interval; if (timekeeping == interval) { Time30?.Invoke(); } } yield return(null); } }
public CTimerCirculateCall(float t, TimeCallBack callb) : base(t, callb, null) { circulatetime = t; }
public CTimerPersecondCall(float t, TimeCallBack callb) : base(t, callb, null) { }
/// <summary> /// 开启倒计时计时器(秒) /// </summary> /// <param name="time">计时时间(秒)</param> public void StartCount(int conut, TimeCallBack callBack) { StartCount(conut); m_timeCallBack = callBack; }
/// <summary> /// 开启倒计时计时器(秒) /// </summary> /// <param name="time">计时时间(秒)</param> public void StartTime(float time, TimeCallBack callBack) { StartTime(time); m_timeCallBack = callBack; }
// other script able to access this function, to add timer mechanics public void Add(TimeCallBack timeCallBack, float inSeconds) { events.Add(new TimedEvent { TimeCallBack = timeCallBack, TimeToExecute = Time.time + inSeconds }); }