Example #1
0
        public TimerTask(float delayTime, TimerTaskRunner runner, int loopCount, float loopDuration
#if DEBUG_PERFORMANCE_TRACE
                         , string memberName    = null
                         , string path          = null
                         , int sourceLineNumber = default(int)
#endif
                         )
        {
            Init(delayTime, runner, loopCount, loopDuration
#if DEBUG_PERFORMANCE_TRACE
                 , memberName
                 , path
                 , sourceLineNumber
#endif
                 );
        }
Example #2
0
        /// <summary>
        /// 将当前Timers重置到刚创建出来的状态
        /// </summary>
        public virtual void Clear()
        {
            _fun    = null;
            _runner = null;
            Running = false;
            Stop    = false;
            Paused  = false;

            followTargetType = eFollowTargetType.None;

            target  = null;
            target2 = null;

            followTargetMode = FollowTargetMode.TargetDisactiveDoStop;

            _delayTime = 0;

            _loopDuration = 0;

            _loopCount = 0;

            IgnoreTimeScale = false;

            _savedDelayTime = 0;

            _savedLoopCount = 0;

            _savedLoopDuration = 0;


#if DEBUG_PERFORMANCE_TRACE
            stackInfo = null;
#endif
            if (addedUpdateListener)
            {
                TimerTaskManager.Instance.RemoveUpdateTimer(this);
            }

            addedUpdateListener = false;

            SavedParam1 = null;
            SavedParam2 = null;
            SavedParam3 = null;
            SavedParam4 = null;
        }
Example #3
0
        /// <summary>
        /// 初始化,如果调用Clear再调用Init等价于创建一个新的对象
        /// </summary>
        /// <param name="delayTime"></param>
        /// <param name="fun"></param>
        /// <param name="loopCount"></param>
        /// <param name="loopDuration"></param>
        /// <returns></returns>
        public void Init(float delayTime, TimerTaskRunner runner, int loopCount, float loopDuration
#if DEBUG_PERFORMANCE_TRACE
                         , string memberName    = null
                         , string path          = null
                         , int sourceLineNumber = default(int)
#endif
                         )
        {
            _savedDelayTime = delayTime;
            //至少一次
            _savedLoopCount    = Mathf.Clamp(loopCount, 1, int.MaxValue);
            _savedLoopDuration = loopDuration;
            _fun    = null;
            _runner = runner;
#if DEBUG_PERFORMANCE_TRACE
            stackInfo = $"{path} : {memberName}:Line({sourceLineNumber})";
#endif
            DoReset(false);
        }
Example #4
0
        public void Init(bool nextFrame, System.Action fun, int loopCount, float loopDuration
#if DEBUG_PERFORMANCE_TRACE
                         , string memberName    = null
                         , string path          = null
                         , int sourceLineNumber = default(int)
#endif
                         )
        {
            _savedDelayTime = 0.001f;
            _savedNextFrame = nextFrame;
            //至少一次
            _savedLoopCount    = Mathf.Clamp(loopCount, 1, int.MaxValue);
            _savedLoopDuration = loopDuration;
            _fun    = fun;
            _runner = null;
#if DEBUG_PERFORMANCE_TRACE
            stackInfo = $"{path} : {memberName}:Line({sourceLineNumber})";
#endif
            DoReset(false);
        }
Example #5
0
        public static TimerTask TimerStart(float delay, TimerTaskRunner runner, MonoBehaviour followtarget, MonoBehaviour followtarget2, FollowTargetMode followMode = FollowTargetMode.TargetDisactiveDoStop, bool ignoreTimeScale = true, int loopCount = 1, float loopduration = 0f
#if DEBUG_PERFORMANCE_TRACE
                                           , [CallerMemberName] string memberName    = null
                                           , [CallerFilePath] string path            = null
                                           , [CallerLineNumber] int sourceLineNumber = default(int)
#endif
                                           )
        {
            var task = Pool.GetATimer();

            task.Init(delay, runner, loopCount, loopduration
#if DEBUG_PERFORMANCE_TRACE
                      , memberName
                      , path
                      , sourceLineNumber
#endif
                      );
            task.IgnoreTimeScale = ignoreTimeScale;
            return(task.DoStart().DoFollow(followtarget, followMode));
            //return new TimerTask(delay, runner, loopCount, loopduration).DoFollow(followtarget, followMode).DoStart();
        }