I think this is a simple question but I really don’t know how to solve it and I can’t find any solution online, remembering the games that I have played lately made with Unreal I think is an issue that everybody encounters.
I have a Main Menu level and a Game Level the first one is a normal level and the second one has enabled World Partitions. When I press the start Button on the Main Menu I load the Game Level.
Because the Game Level has a lot to load I start viewing things without having even all objects loaded or even the materials. I tried to create a loading screen so I only show the level once is completely loaded. Seems that in unreal this is not straight forward with World Partitions. I can’t find a way to know when the level have been completely loaded.
Load Stream Level doesn’t work and Open Level don’t have any way to know when is fully loaded.
There are multiple loading screen plugins on fab. And multiple posts/tutorials about it.
However:
There is no easy way to make game loading screen for unreal (needs C++), or animated (like real progress bar for loading) using widget loading screens.
For streamed levels most of those plugins will work.
And you can do it yourself.
use asynchronus streaming
it has wire connection for started and finished streaming
on started just pop up full screen widget
on finished turn it off (collapse/hide)
or use widget switcher and switch to hud or loading screen
there should be events that you can overwrite (and then use) in your ulevel:
OnLevelStreamingLoaded , OnLevelStreamingUnloaded
It seems that OnLevelStreamingLoaded and OnLevelStreamingUnloaded are for Persistent Levels even at c++ level, for world partition levels this doesn’t seems to be possible, most of the solutions that I have seen around are workarounds with collision boxes or even ray casting. I my case I need to use levels with World partitions and any tutorial out there uses world partition to show how loading screens work.
As I said if you look at Games like Delta Force they are still loading things with you inside the game map, some time I even see texture come from 512 to 4k when I’m shooting at something .
I think is a feature that they are missing because they are migrating to data layers and the data layers manager, the way I see it with unreal in the future change a level will not be a thing.