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());
        }
    }
示例#2
0
 private void SwitchState()
 {
     _defaultWorker.ChangeDirection();
     if (_defaultWorker.HasManager)
     {
         _defaultWorker.ChangeState(new IWorkerMoveState());
     }
     else
     {
         _defaultWorker.ChangeState(new IWorkerIdleState());
     }
 }