//public Animator animator; private void Awake() { stateMachine = new StateMachine <AlexPlayerController>(this); playerIdleState = new PlayerIdleState(); playerRunningState = new PlayerRunningState(); playerJumpingState = new PlayerJumpingState(); playerFallingState = new PlayerFallingState(); playerAttackingState = new PlayerAttackingState(); stateMachine.ChangeState(playerIdleState); rb = GetComponent <Rigidbody>(); attackHitboxScript = attackHitboxObject.GetComponent <HitBoxController>(); }
public CharacterStateMachine(PlayerController player) { _player = player; CharacterState.Init(player); PlayerIdleState idleState = new PlayerIdleState(); PlayerMoveState moveState = new PlayerMoveState(); PlayerAimState aimState = new PlayerAimState(); PlayerAttackingState attackState = new PlayerAttackingState(); idleState.InitTransitions(moveState, aimState); moveState.InitTransitions(idleState, attackState, aimState); aimState.InitTransitions(moveState, attackState, idleState); attackState.InitTransitions(moveState); _allStates.Add(idleState.GetType(), idleState); _allStates.Add(moveState.GetType(), moveState); _currentState = idleState; }