コード例 #1
0
 public void Reset()
 {
     lock (this)
     {
         _status         = ActionSequenceStatus.Idle;
         _curActionIndex = -1;
         _startTime      = 0;
     }
 }
コード例 #2
0
        private void Finish()
        {
            lock (this)
            {
                _status = ActionSequenceStatus.Finished;

                _curActionIndex = -1;

                OnSequenceComplete();
            }
        }
コード例 #3
0
        public void Cancel()
        {
            lock (this)
            {
                if (_status == ActionSequenceStatus.Idle ||
                    _status == ActionSequenceStatus.Running)
                {
                    _status = ActionSequenceStatus.Canceled;

                    _curActionIndex = -1;

                    OnSequenceCancel();
                }
            }
        }
コード例 #4
0
        public void Start()
        {
            lock (this)
            {
                if (_status == ActionSequenceStatus.Running)
                {
                    return;
                }

                // 在这里调用,确保状态确实是Before Start的。
                OnSequenceStart();

                _status         = ActionSequenceStatus.Running;
                _curActionIndex = 0;
                _startTime      = GetCurrentTime();
            }
        }