FVector2D MousePosition;
if (GetMousePosition(MousePosition.X, MousePosition.Y))
{
FVector WorldLocation, WorldDirection;
if (DeprojectScreenPositionToWorld(MousePosition.X, MousePosition.Y, WorldLocation, WorldDirection))
{
FVector EndPoint = WorldLocation + (WorldDirection * 10000); // Adjust the distance as needed
FHitResult HitResult;
GetWorld()->LineTraceSingleByChannel(HitResult, WorldLocation, EndPoint, ECC_Visibility);
FVector ReticleWorldPosition = HitResult.bBlockingHit ? HitResult.ImpactPoint : EndPoint;
// Spawn or update your reticle Actor position here
if (APlayerController* PlayerController = GetWorld()->GetFirstPlayerController())
{
if (APawn* PlayerPawn = PlayerController->GetPawn())
{
FVector PlayerLocation = PlayerPawn->GetActorLocation();
FRotator PlayerRotation = PlayerPawn->GetActorRotation();
FVector Direction = ReticleWorldPosition - PlayerLocation;
// Create a rotation that looks from the player's position to the reticle's position
FRotator LookAtRotation = FRotationMatrix::MakeFromX(ReticleWorldPosition - PlayerLocation).Rotator();
// Calculate the yaw difference
float YawDifference = LookAtRotation.Yaw - PlayerRotation.Yaw;
// Normalize the yaw difference to the range [-180, 180]
YawDifference = FMath::UnwindDegrees(YawDifference);
Direction.Normalize(); // Ensure the direction vector is normalized
DisplayReticle(ReticleWorldPosition, Direction.Rotation(), YawDifference);
}
}
}
}
Hello Everyone, I desperately need help with a small issue. I am trying to figure our how I can Lyra Starter Game work in top-down. I got Camera and Reticle working but one thing i am still struggling with.
I am unable to figure out how I can make turn-in place work based on which side the reticle is aiming. Can anyone please help me. As i’m not good enough with animation stuff, and Lyra’s animation system is kinda complex.
Thank You