I have a problem with streaming. Basically when I run level using OpenLevel everything works fine, but when I stream the level in - everything doesn’t have collisions. AI/Player falling, projectiles not blocking even ToggleDebugCamera doesn’t have any trace info.
I’m creating level like this: (using knowledge from here Loading Sub-Level multiple times, possible? - C++ - Unreal Engine Forums )
ULevelStreamingKismet* NewStreamingLevel = NewObject<ULevelStreamingKismet>(GetWorld(), NAME_None, RF_NoFlags, NULL);
NewStreamingLevel->SetWorldAssetByPackageName(FName(*LongPackageName));
if (GetWorld()->IsPlayInEditor())
{
FWorldContext WorldContext = GEngine->GetWorldContextFromWorldChecked(GetWorld());
NewStreamingLevel->RenameForPIE(WorldContext.PIEInstance);
}
NewStreamingLevel->bShouldBeLoaded = true;
NewStreamingLevel->bShouldBeVisible = false;
NewStreamingLevel->bShouldBlockOnLoad = false;
NewStreamingLevel->bInitiallyLoaded = true;
NewStreamingLevel->bInitiallyVisible = false;
NewStreamingLevel->PackageNameToLoad = FName(*LongPackageName);
//different place:
NewStreamingLevel->bShouldBeVisible = true;
GetWorld()->UpdateLevelStreaming();
Basically level is streamed in I can see it, but collision doesn’t work. Streaming is managed by UWorldManager which is created in Game Iinstance using:
WorldManager = NewObject(this);
And then I’m passing WorldContext to it.
Anyone had issues with collisions when streaming levels from C++?