protected override void PerformTransition(StateMachine machine) { HandleMovement(); if (playerAttack.CanAttack() && attackKeyPressed) { machine.ToMovementState(machine.AttackState); } if (JumpKeyPressed && playerMovement.Grounded) { machine.ToMovementState(machine.JumpState); } else if (!playerMovement.Grounded) { machine.ToMovementState(machine.FallState); } if (DashKeyPressed) { var dash = playerMovement.GetComponent <Dash>(); if (!dash.OnCooldDown()) { machine.ToMovementState(machine.DashState); } else { DashKeyPressed = false; } } Blink(); }