public void Reset() { lock (this) { _status = ActionSequenceStatus.Idle; _curActionIndex = -1; _startTime = 0; } }
private void Finish() { lock (this) { _status = ActionSequenceStatus.Finished; _curActionIndex = -1; OnSequenceComplete(); } }
public void Cancel() { lock (this) { if (_status == ActionSequenceStatus.Idle || _status == ActionSequenceStatus.Running) { _status = ActionSequenceStatus.Canceled; _curActionIndex = -1; OnSequenceCancel(); } } }
public void Start() { lock (this) { if (_status == ActionSequenceStatus.Running) { return; } // 在这里调用,确保状态确实是Before Start的。 OnSequenceStart(); _status = ActionSequenceStatus.Running; _curActionIndex = 0; _startTime = GetCurrentTime(); } }