Character Movement Rotation

I extended the class CharacterMovementComponent to implement new movement features.
I need to rotate the character so I’ve written this code:


void UMyCharMovementComponent::PerformMovement(float DeltaTime) {
    Super::PerformMovement(DeltaTime);
 
    ACharacter* Character = GetCharacterOwner();
    if (!Character) {
        return;
    }
 
    float CurrentOrientation = Character->GetActorRotation().Yaw + RotationSpeed * DeltaTime;
    Character->SetActorRotation(FRotator(0.f, CurrentOrientation, 0.f));
}

The RotationSpeed is controlled into the tick function
The problem is that each tick the rotation will be reset to the initial, the result is the pawn that is vibrating.
What is the correct way to rotate the character?

I’ve found the problem, The rotation is resetted because I must update the rotation of player controller.

The problem is that I’m simulating a car into isometric view, so the rotation of car depend on the wheel orientation not on the player controller rotation.

There is a way to break the constraint between player controller and Character movement component?