Advertisement
Guest User

ue4 line trace code

a guest
Mar 22nd, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. void ATankPlayerController::Tick(float DeltaSeconds)
  2. {
  3.     Super::Tick(DeltaSeconds);
  4.    
  5.     if(LineTraceTankAim()) UE_LOG(LogTemp, Warning, TEXT("line good"));
  6. }
  7.  
  8. bool ATankPlayerController::LineTraceTankAim() const
  9. {
  10.     auto AimDirection = FVector(0.0f);
  11.     GetAimDirection(AimDirection);
  12.    
  13.     //get start and end of trace line
  14.     auto CamPos = GetAutoActivateCameraForPlayer()->GetActorLocation(); //start
  15.     auto TraceEnd = CamPos + AimDirection*ShootRange;                   //end
  16.    
  17.     FHitResult HitResult; //output
  18.     return GetWorld()->LineTraceSingleByChannel
  19.         (
  20.             HitResult,
  21.             CamPos, TraceEnd,
  22.             ECollisionChannel::ECC_Visibility,
  23.             FCollisionQueryParams::DefaultQueryParam,
  24.             FCollisionResponseParams::DefaultResponseParam
  25.         );
  26. }
  27.  
  28. bool ATankPlayerController::GetAimDirection(FVector& OutAimDirection) const
  29. {    
  30.     //get rasterized crosshair coordinates
  31.     int32 cx,cy;
  32.     GetViewportSize(cx, cy);
  33.     float cfx = cx * CrosshairX;
  34.     float cfy = cy * CrosshairY;
  35.     FVector wl;                                                           //wl is garbage
  36.     return DeprojectScreenPositionToWorld(cfx,cfy, wl, OutAimDirection);  //got AimDirection
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement