What do you think about consider the code bellow:
////////////////////////////////////////////////////
// .h
UPROPERTY()
TArray<TWeakObjectPtr<AActor>> ControlledActorsInside;
UFUNCTION(BlueprintCallable)
void StartSelectionRealTime(UPARAM(ref) TArray<AActor*>& ControlledActors);
////////////////////////////////////////////////////
// .cpp
void UYourCoolComponent::StartSelectionRealTime(TArray<AActor*>& ControlledActors)
{
ControlledActorsInside.Empty();
for (AActor* Actor : ControlledActors)
{
if (IsValid(Actor))
{
ControlledActorsInside.Add(Actor);
}
}
// your remaing code goes here...
}
I think we need more heads on this