Hi @MihailoML
The truth is, this is all more easily handled in C++, but still doable in BP.
If you’re not using World Partition, you should use Level Streaming.
The way the whole Loading Screen thing works is a bit complicated, as things get destroyed or recreated during level transition, but you can initiate the loading screen from the GameInstance, which is preserved through map transition.
Assuming you’re making a single player game, this would be a viable logic:
-
Create and display LoadingScreen Widget
-
After that, start level transition.
-
(Maybe add a small delay before this, specially if you have animations)
-
On the BeginPlay of the level, delay until next tick, then start Loading Streaming Levels (your Persistent map’s sublevels)
-
When all are done loading, depending on how big they are, they should be fully loaded and visible or still need some time, youll see by testing.
-
If you don’t want popups, try adjusting how long after load completion you want to wait before hidding the Loading Screen. To hide the loading screen, you’ll need to Get Game Instance and have a function or event you can call to HideLoadingScreen.
On complete only determines that all the assets are spawned on the world, doesn’t mean that its had time to render everything, so its possible to see actors or visual recalculations popup after On Complete.
If you were to try doing this in C++, you can control the hole thing from the GameInstance directly, using PreLoadMap & PostLoadMap delegates (Dispatchers)