Skip to content

Call StopLoadingScreen() from outside BeginPlay #116

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
borjafac opened this issue Feb 4, 2025 · 6 comments
Open

Call StopLoadingScreen() from outside BeginPlay #116

borjafac opened this issue Feb 4, 2025 · 6 comments

Comments

@borjafac
Copy link

borjafac commented Feb 4, 2025

Hello! I am trying to setup the default loading screen. I know I am supposed to call StopLoadingScreen from the BeginPlay, but the thing is that I'm loading assets in there BeginPlay of my gamemode, and my intention was to stop the loading screen once the callback of the assets being loaded is triggered. This doesn't work of course, and my loading screen gets stuck forever. Any ideas on how can I circumvent this?

Edit: checking again, seems like Allow engine tick only works for post-startup load screens, which probably means the Wait for manual stop tick won't make the StopLoadingScreen work outside of BeginPlay, only for the startup loading screen... But I wonder, why? What's the limitation here?

Thanks!

@truong-bui
Copy link
Owner

You have to stop the Async Loading Screen before loading your game data in BeginPlay. It's better to use UMG to cover your data loading progress. This Async Loading Screen plugin is suitable for level loading, not game data like textures, assets, etc.

@borjafac
Copy link
Author

borjafac commented Feb 5, 2025

Thanks for the answer! I was tring to use it for both level loading (for both main menu and gameplay) and waiting until all the data was also loaded before entering main menu. For the gameplay part, then I wouldn't be able to load anything about the game after the map has been loaded (like spawning some enemies or stuff like that) and hide it with the loading screen? Because to me loading a level is just half of what I want to hide, cause I have initialization logic after the level is loadad that would seem ugly to show to the player... And I tried to use UMG but of course it doesn't work for level transitions, and if I try to spawn it right after the level is loaded, the camera controller shows some stuff for a few frames before my begin play is actually called, so... Yeah... :(

@truong-bui
Copy link
Owner

For the gameplay part, then I wouldn't be able to load anything about the game after the map has been loaded (like spawning some enemies or stuff like that) and hide it with the loading screen?

Correct! You can't load anything in the BeginPlay event unless you close the loading screen. The workaround is to create a loading screen in UMG and show it immediately after the Async Loading Screen is finished to cover the game data loading progress.

@borjafac
Copy link
Author

borjafac commented Feb 5, 2025

I see :(, thanks for the clarification! And this is because of a limitation of the MoviePlayer module? Or what is it exactly the problem? I would like to understand it if possible :D

@truong-bui
Copy link
Owner

truong-bui commented Feb 5, 2025

This is how Unreal Engine loads levels (it's a limitation of hard-loading levels) before they develop Level Streaming. You can read the About section of the Async Loading Screen readme to understand this limitation.

@borjafac
Copy link
Author

borjafac commented Feb 5, 2025

Understood, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants