void UCarlaSettingsDelegate::SetActorComponentsDrawDistance(AActor* actor, const float max_draw_distance) const { if(!actor) return; TArray<UActorComponent*> components = actor->GetComponentsByClass(UPrimitiveComponent::StaticClass()); float dist = max_draw_distance; const float maxscale = actor->GetActorScale().GetMax(); if(maxscale>_MAX_SCALE_SIZE) dist *= 100.0f; for(int32 j=0; j<components.Num(); j++) { UPrimitiveComponent* primitivecomponent = Cast<UPrimitiveComponent>(components[j]); if(IsValid(primitivecomponent)) { primitivecomponent->SetCullDistance(dist); primitivecomponent->bAllowCullDistanceVolume = dist>0; } } }