private void LoadingCart() { _loadingTimer += Time.deltaTime; _loadingDuration = _defaultWorker.Capacity / _defaultWorker.CollectRate; if (_loadingTimer >= _loadingDuration) { if (_defaultWorker.CartLoadingPoint) { //change direction of non-elevator worker if (!_defaultWorker.gameObject.CompareTag("ElevatorWorker")) { _defaultWorker.ChangeDirection(); } //for elevator worker, only change direction when the elevator reaches the last level else { if (!_canMoveNext) { _defaultWorker.ChangeDirection(); } } } _defaultWorker.ChangeState(new IWorkerMoveState()); } }
private void SwitchState() { _defaultWorker.ChangeDirection(); if (_defaultWorker.HasManager) { _defaultWorker.ChangeState(new IWorkerMoveState()); } else { _defaultWorker.ChangeState(new IWorkerIdleState()); } }