Beispiel #1
0
    private void Start()
    {
        switch (StartingState)
        {
        case MovementState.STOPPED:
        {
            CurrentState = new StoppedState(MovementModel, this);

            break;
        }
        }

        PreviousState = CurrentState;
        CurrentState.OnEnterState();

        StartingPosition = transform.position;
    }
Beispiel #2
0
    public void UpdateState(PlayerInputs input)
    {
        if (changedState)
        {
            CurrentState.OnExitState();

            PreviousState       = CurrentState;
            CurrentState        = NextState;
            MovementModel.State = CurrentState.State;

            CurrentState.OnEnterState();

            changedState = false;
        }

        CurrentState.OnUpdateState(input);
    }
Beispiel #3
0
    public void ChangeStateImmediate(MovementState targetState)
    {
        switch (targetState)
        {
        case MovementState.STOPPED:
        {
            NextState = new StoppedState(MovementModel, this);
            break;
        }

        case MovementState.ACCELERATING:
        {
            NextState = new AccelState(MovementModel, this);
            break;
        }

        case MovementState.MOVING:
        {
            NextState = new MovingState(MovementModel, this);
            break;
        }

        case MovementState.JUMPING:
        {
            NextState = new JumpingState(MovementModel, this);
            break;
        }

        case MovementState.FALL_FORGIVENESS:
        {
            NextState = new FallForgivenessState(MovementModel, this);
            break;
        }

        case MovementState.FALLING:
        {
            NextState = new FallingState(MovementModel, this);
            break;
        }

        case MovementState.HUGGING_WALL:
        {
            NextState = new HuggingWallState(MovementModel, this);
            break;
        }

        case MovementState.WALL_LAUNCH:
        {
            NextState = new WallLaunchState(MovementModel, this);
            break;
        }
        }

        CurrentState.OnExitState();

        PreviousState       = CurrentState;
        CurrentState        = NextState;
        MovementModel.State = CurrentState.State;

        CurrentState.OnEnterState();
    }