Turn mouse input into rotation?

Hey, so I have a top down project that supports both controller and mouse.

Currently I convert controller stick input into a rotation and use the mouse location and convert that into rotation to aim my character:

		// Create fire direction vector from controller input
		const float FireForwardValue = GetInputAxisValue(FireForwardBinding);
		const float FireRightValue = GetInputAxisValue(FireRightBinding);
		const FVector FireDirection = FVector(FireForwardValue, FireRightValue, 0.f);

		// MouseInput

		APlayerController* PC = GetWorld()->GetFirstPlayerController();
		FHitResult MouseTrace;
		PC->GetHitResultUnderCursor(ECC_Visibility, true, MouseTrace);

		FVector CharToMouse;
		CharToMouse = MouseTrace.Location - this->GetActorLocation();
		CharToMouse.Z = 0;


		if(FireDirection != FVector(0, 0, 0))
			TargetTurretRot = FireDirection.Rotation() - RootComponent->GetRelativeRotation();
		else //else if (GetMKInput()) //make timed out instead for per tick
			TargetTurretRot = CharToMouse.Rotation() - RootComponent->GetRelativeRotation();

However, this means that M&KB players can just point and click to aim, which is significantly easier than the controller having to aim from the center of the pawn based on rotation, and I wish to make each option balanced.

So I wish to get the mouse movement, and turn it into a rotation, movement in the left direction rotates towards 90 degrees, moving the mouse right turns it towards 180, moving the mouse back turns towards 135 and forwards towards 360/0. But I can’t even find an input variable for the mouse movement and don’t even know where to begin looking to accomplish this.

Edit: I suppose I could capture the mouse coordinates and compare to last frame, but wouldn’t that cause issues if the invisible cursor hits the edge of the frame?

Edit2: I was just having a mindfart, I was able to just go back to basics and set up mouse axis bindings without issues.

I can’t understand the code. But I do know that UE provides an out-of-the-box way of converting input to pawn/character movement.

Binding mouse input to movement can be done with the following two steps. The example will be for using the mouse to rotate the character.

  1. Setup your input bindings in project settings.

  1. Bind the input to AddControllerYawInput in SetupPlayerInputComponent.
void ACharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
  PlayerInputComponent->BindAxis(TEXT("Rotate"), this, &APawn::AddControllerYawInput);
}