获取3d世界坐标,物体
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| void AMyPlayerCtrler::OnTapPressed(const FVector2D& ScreenPosition, float DownTime) { FVector WorldPosition(0.f); AActor* const HitActor = GetClickTarget(ScreenPosition, WorldPosition);
AMyChar* tarChar = Cast<AMyChar>(HitActor); if (tarChar != nullptr) { UE_LOG(GameLogger, Warning, TEXT("--- AMyPlayerCtrler::OnTapPressed, target id:%d"), tarChar->GetUuid()); } }
AActor* AMyPlayerCtrler::GetClickTarget(const FVector2D& ScreenPoint, FVector& WorldPoint) const { FHitResult Hit; if (GetHitResultAtScreenPosition(ScreenPoint, Collision_Pawn, true, Hit)) { WorldPoint = Hit.ImpactPoint; return Hit.GetActor(); } return nullptr; }
|
GetHitResultAtScreenPosition 是 APlayerController 中的接口