bool ATankPlayerController::GetSightRayHitLocation(FVector& HitLocation) const { int32 ViewportSizeX, ViewportSizeY; GetViewportSize(ViewportSizeX, ViewportSizeY); FVector LookDirection; FVector2D ScreenLocation = FVector2D(CrosshairXLocation * ViewportSizeX, CrosshairYLocation * ViewportSizeY); if (GetLookDirection(ScreenLocation, LookDirection)) { return GetLookVectorHitLocation(LookDirection, HitLocation); } return false; }
// Get world location of linetrace through crosshair, true if hits landscape bool ATankPlayerController::GetSightRayHitLocation(FVector& HitLocation) const { // Find the crosshair position in pixel coordinates int32 ViewportSizeX, ViewportSizeY; GetViewportSize(ViewportSizeX, ViewportSizeY); auto ScreenLocation = FVector2D(ViewportSizeX * CrosshairXLocation, ViewportSizeY * CrosshairYLocation); // "De-project" the screen position of the crosshair to a world direction FVector LookDirection; if (GetLookDirection(ScreenLocation, LookDirection)) { // Line-trace along that LookDirection, and see what we hit (up to max range) return GetLookVectorHitLocation(LookDirection, HitLocation); } return false; }
bool ATankPlayerController::GetSightRayHitLocation(FVector& OutHitLocation) const { // Find the crosshair position int32 ViewportSizeX, ViewportSizeY; GetViewportSize(OUT ViewportSizeX, OUT ViewportSizeY); FVector2D ScreenLocation = FVector2D(ViewportSizeX * CrossHairXLocation, ViewportSizeY * CrossHairYLocation); FVector LookDirection; if(GetLookDirection(ScreenLocation, LookDirection)) { return GetLookVectorHitLocation(LookDirection, OUT OutHitLocation); } // Line trace along that look direction, and see what we hit (up to a max range) return false; }
// Get world location of line trace through crosshair, true if this landscape bool ATankPlayerController::GetSightRayHitLocation(FVector& HitLocation) const { // Find the crosshair posisiton int32 ViewportSizeX, ViewportSizeY; GetViewportSize(ViewportSizeX, ViewportSizeY); FVector2D ScreenLocation = FVector2D(ViewportSizeX * CrossHairXLocation, ViewportSizeY * CrossHairYLocation); // "De-project" the screen position of the crosshair to a world direction FVector LookDirection; FHitResult HitResult; if (GetLookDirection(ScreenLocation, LookDirection)) { return GetLookVectorHitLocation(LookDirection, HitLocation); } return false; }
bool ATankPlayerController::GetSightRayHitLocation(FVector& HitLocation) const { // Find the crosshair position int32 ViewportSizeX, ViewportSizeY; GetViewportSize(ViewportSizeX, ViewportSizeY); FVector2D ScreenLocation = FVector2D(CrossHairXLocation * ViewportSizeX, CrosshairYLocation * ViewportSizeY); // "De-project" the screen position of the crosshair to a world direction FVector LookDirection; FHitResult HitResult; if (GetLookDirection(ScreenLocation, LookDirection)) { // Line-trace along that look direction, and see what we hit (up to max range) if (GetLookVectorHitLocation((HitResult), LookDirection, HitLocation)) { } } return true; }
bool ATankPlayerController::GetSightRayHitLocation( FVector& HitLocation ) const { //Find the crosshair position in pixel coordinates int32 ViewportSizeX, ViewportSizeY; GetViewportSize(ViewportSizeX, ViewportSizeY); auto ScreenLocation = FVector2D(ViewportSizeX * CrossHairXLocation, ViewportSizeY * CrossHairYLocation); FVector LookDirection; if(GetLookDirection(ScreenLocation, LookDirection)) { // Line trace along that look direction, and see what we hit (up to max range) if(GetLookVectorHitLocation(LookDirection, HitLocation)) { //UE_LOG(LogTemp, Warning, TEXT("Hit Location: %s"), *HitLocation.ToString()); } } return true; }