In the editor, the level always appears as if it were set to “Always Loaded,” regardless of the actual streaming method in use. This makes it impossible to preview the real lighting in the editor, since I plan to use all my SubLevel with the StreamingMethod “Blueprint”.
Then, if the level’s streaming method is set to “Blueprint,” I dynamically load it using:
// Prepare latent action info
FLatentActionInfo LatentInfo{};
LatentInfo.CallbackTarget = this;
LatentInfo.UUID = FMath::Rand();
LatentInfo.Linkage = 0;
LatentInfo.ExecutionFunction = FName("OnLevelLoadedCallback");
// Load the level in streaming
UGameplayStatics::LoadStreamLevel(this,
LevelNameResolver::GetName(levelToLoad.id),
true,
true,
LatentInfo);
When the streaming method is set to “Always Loaded,” calling LoadStreamLevel has no effect, since the level is already loaded.
In my previous post, both screenshots are from PIE. Between them, I changed the sublevel’s streaming method. You can see that the objects placed in the sublevel are lit differently, even though their lighting comes from the same HDRI backdrop (which is placed in the persitent level).