/// <summary> /// 初始化计数器. /// </summary> /// <param name="iMaxValue">最大值.</param> /// <param name="iType">类型.</param> /// <param name="iMode">模式.</param> public override void InitCounter( T iMaxValue, TCounterType iType, TCounterMode iMode = TCounterMode.CountDown) { this.MaxValue = iMaxValue; this.Type = iType; this.Mode = iMode; this.State = TCounterState.Idle; switch (this.Mode) { case TCounterMode.CountDown: { this.Value = this.MaxValue; } break; case TCounterMode.CountUp: { this.Value = default(T); } break; default: break; } }
/// <summary> /// 创建时间计数器. /// </summary> /// <param name="iMaxValue">计数器最大值.</param> /// <param name="iOnCountOver">超过计时回调函数.</param> /// <param name="iMode">模式(默认为:倒计时).</param> public static TimeCounter Create( float iMaxValue, System.Action iOnCountOver = null, TCounterMode iMode = TCounterMode.CountDown) { TimeCounter objRet = new TimeCounter(); if (objRet != null) { objRet.InitCounter(iMaxValue, TCounterType.TimeCounter, iMode); if (iOnCountOver != null) { objRet.OnCountOver += iOnCountOver; } return(objRet); } else { UtilsLog.Error("TimeCounter", "Create()::TimeCounter Create Failed!!!"); return(null); } }
/// <summary> /// 初始化计数器. /// </summary> /// <param name="iMaxValue">最大值.</param> /// <param name="iType">类型.</param> /// <param name="iMode">模式.</param> public abstract void InitCounter( T iMaxValue, TCounterType iType, TCounterMode iMode = TCounterMode.CountDown);