I’ve been working on a loading screen for a game and I’ve encontered a few issues while working on it. I managed to create a new UUserWidget for the Loading Screen for a Blueprint and assign it to the Movie Player successfully (Widget Created using a New Temporary World), however, the Widget itself has animations and a Tick function and those are only executing if I keep moving my mouse over the window, otherwise, the widget just completely stops it’s animation. Once the Movie Player adds the Widget, there is brief moment where I can see the animations working before they completely stop working.
I used normal method for creating loading screens with C++ (Movie Player), the only difference is that I am using a Blueprint Widget that I get the class from a dynamic reference from a config variable and then I use TakeWidget to get the SWidget reference.
// Create world if invalid.
if (!LoadingScreenWorld) {
LoadingScreenWorld = UWorld::CreateWorld(EWorldType::Game, true, FName("LoadingScreen"), GetTransientPackage());
GEngine->CreateNewWorldContext(EWorldType::Game).SetCurrentWorld(LoadingScreenWorld);
}
// Set Widget.
if (Settings->LoadingScreenWidget.Get() != nullptr)
Attributes.WidgetLoadingScreen = CreateWidget<UUserWidget>(LoadingScreenWorld, Settings->LoadingScreenWidget.Get())->TakeWidget();