示例#1
0
    private void Start()
    {
        _states = new Dictionary <E_Turret, ITurrets>();

        _currentState = _startingState;

        _slowDownSpeed = 0;
        _accelSpeed    = 0;

        Init();

        _states.Add(E_Turret.SEARCHING, new TurretSearchingState());
        _states.Add(E_Turret.SHOOTING, new TurretShootingState());
        _states.Add(E_Turret.RELOADING, new TurretReloadingState());
        _states.Add(E_Turret.DEAD, new TurretDeadState());

        _states[E_Turret.SEARCHING].Init(this);
        _states[E_Turret.SHOOTING].Init(this, Projectile);
        _states[E_Turret.RELOADING].Init(this);
        _states[E_Turret.DEAD].Init(this);

        ChangeState(_currentState);

        GameLoopManager.Instance.Ennemies += OnUpdate;
    }
示例#2
0
 public void ChangeState(E_Turret nextState)
 {
     _states[_currentState].Exit();
     _currentState = nextState;
     _states[nextState].Enter();
 }