UE 5.2 - Lock Camera on Target C++

Hello everyone.
I have this problem: in C++ I wrote the code for lock my camera on an actor that I hit and is working just fine: I press my right mouse button, then with the help of the fuction SphereTraceSingleForObjects I see that I hit the actor in my array list, but my camera don’t lock on him.
I tried adding some logs in all my if, to be sure that every single one of them is execute, and in the Output Log screen I see every single log that I wrote, so I don’t know what is the reason.

There is my code:

Player .cpp fuction

UE_LOG(LogTemp, Warning, TEXT("LockTarget Started!"));
	FHitResult OutHit;
	ACharacter* player = UGameplayStatics::GetPlayerCharacter(GetWorld(), 0);
	camera = player->FindComponentByClass<UCameraComponent>();
	if (camera == nullptr) {
		UE_LOG(LogTemp, Warning, TEXT("No Camera!"));
		return;
	}
	else {
		UE_LOG(LogTemp, Warning, TEXT("CameraFounded"));
	}

	FRotator CameraRot = camera->GetComponentRotation();
	FVector CameraLoc = CameraRot.Vector() * rangeLock;
	FVector TrainerLoc = player->GetActorLocation();
	FVector EndLoc = CameraLoc + TrainerLoc;

	TArray<TEnumAsByte<EObjectTypeQuery>> ObjectArray;
	ObjectArray.Add(UEngineTypes::ConvertToObjectType(ECC_Pawn));

	TArray<AActor*> ActorsToIgnore;
	ActorsToIgnore.Add(this);
	UE_LOG(LogTemp, Warning, TEXT("LockTarget Boolean in action!"));

	bool hasHit = UKismetSystemLibrary::SphereTraceSingleForObjects(GetWorld(), TrainerLoc, EndLoc, radiusLock, ObjectArray, true, ActorsToIgnore, EDrawDebugTrace::ForDuration, OutHit, true);

	if (hasHit) {
		UE_LOG(LogTemp, Warning, TEXT("First Boolean!"));
		HitActor = OutHit.GetActor();
		if (HitActor && HitActor->ActorHasTag(FName("CharacterMesh"))) {
			APlayerController* PlayerController = GetWorld()->GetFirstPlayerController();
			LookRot = UKismetMathLibrary::FindLookAtRotation(camera->GetComponentLocation(), HitActor->GetActorLocation());

		}
	}

Player Tick fuction:

Super::Tick(DeltaTime);
	if (HitActor != nullptr) {
		APlayerController* PlayerController = GetWorld()->GetFirstPlayerController();
		UE_LOG(LogTemp, Warning, TEXT("Hit Actor Boolean!"));

		if (PlayerController) {
			UE_LOG(LogTemp, Warning, TEXT("Camera Boolean!"));
			camera->SetRelativeRotation(LookRot);
		}
	}

I also tried with SetWorldRotation but the result were the same.
There will be mistakes or useless code. I apologize, I’m still learning haha

Thanks in advice!

This answer is a bit late but for you reading this in the future, I am doing the same thing right now and the problem with the camera not moving to lock on is possibly due to the fact that you’ll need to temporarily set the Camera UsePawnControlRotation bool to false while you are locking on, and set it back to true once you are not locking on. The line I used is as below (CameraBoom is my spring arm component with the camera attached to it as in the default character class in 3rd person character template):
CameraBoom->bUsePawnControlRotation = false;