Hello, I am not stupid and used ECollisionChannel::ECC_WorldStatic with first function too. It just does not work.
Same with function in PlayerController that use this kind of input. For example:
bool APlayerController::GetHitResultAtScreenPosition(const FVector2D ScreenPosition, const TArray<TEnumAsByte<EObjectTypeQuery> > & ObjectTypes, bool bTraceComplex, FHitResult& HitResult) const
works. and
bool APlayerController::GetHitResultAtScreenPosition(const FVector2D ScreenPosition, const ECollisionChannel TraceChannel, bool bTraceComplex, FHitResult& HitResult) const
does not work properly. I get every possible hit result and not only WorldStatic.
So when I use:
TArray<TEnumAsByte<EObjectTypeQuery>> ObjectTypes;
ObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_WorldStatic));
GetHitResultAtScreenPosition(MousePosition, ObjectTypes, false, HitResult);
everything is ok.
But when I use
GetHitResultAtScreenPosition(MousePosition, ECollisionChannel::ECC_WorldStatic, false, HitResult)
this will not work