void ULevelStreaming::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) { UProperty* OutermostProperty = PropertyChangedEvent.Property; if ( OutermostProperty != NULL ) { const FName PropertyName = OutermostProperty->GetFName(); if (PropertyName == GET_MEMBER_NAME_CHECKED(ULevelStreaming, LevelTransform)) { GetWorld()->UpdateLevelStreaming(); } if (PropertyName == GET_MEMBER_NAME_CHECKED(ULevelStreaming, EditorStreamingVolumes)) { RemoveStreamingVolumeDuplicates(); // Update levels references in each streaming volume for (TActorIterator<ALevelStreamingVolume> It(GetWorld()); It; ++It) { (*It)->UpdateStreamingLevelsRefs(); } } else if (PropertyName == GET_MEMBER_NAME_CHECKED(ULevelStreaming, LevelColor)) { // Make sure the level's Level Color change is applied immediately by reregistering the // components of the actor's in the level if( LoadedLevel != NULL ) { UPackage* Package = LoadedLevel->GetOutermost(); for( TObjectIterator<UActorComponent> It; It; ++It ) { if( It->IsIn( Package ) ) { UActorComponent* ActorComponent = Cast<UActorComponent>( *It ); if( ActorComponent ) { ActorComponent->RecreateRenderState_Concurrent(); } } } } } } Super::PostEditChangeProperty(PropertyChangedEvent); }