Open Level - progress widget?

Hi,

how do I create a loading screen while “open level” does its thing ?

thanks for your help

Create an empty transition level and also a widget with your loading screen and perhaps a circular throbber.

In your game instance create two custom events.

One event called “Show Loading Screen” create widget and get player controller and connect it to create widget. Then add to viewport.

Second event called “Remove Loading Screen” get all widgets of class and on found widgets remove from parent.

In the translation level blueprint on event begin play cast to your game instance and call show loading screen and then do a open level node and type in your level name. You just need to add that transition level on your existing open level node you have. It just makes an extra step to get the loading screen reliably shows up

In your player controller that you’ll be using on event begin play cast to your game instance and call the remove loading screen.

I’m not at my pc at the moment so that might be a little off. You may need to promote your widget to a variable and in the player controller on event begin play cast to your game instance get that variable and remove from parent. Its either one of those. You may not need the remove loading screen event.

wow thanks dude

but how do you get the loading progression ?

although nowadays most games just show an anim of some sort

I haven’t particularly tried to add an indicator of the time left in the loading process, but I’m under the impression it can be done in C++, but I haven’t tried it.

With this at least the level can unload into an empty level and show that it’s loading since one level must always be cached before it can be unloaded. If you have a fully developed level and tried to just transition straight into another fully developed level, some lower spec PC’s can’t handle the load and could crash out of memory.

Everything locks out when it’s actually loading so I think that the only way to retrieve that progress and display it can be done in C++. I could be wrong on that.