UMG/Slate crashes the engine on seamless travels, what ended my plans on display a nice animated widget to loading screen on the transiton map. I’m also needing to destroy my HUD and all the inner Widget references to get a succesful seamless travel.
Looks like until if I kill all my widgets “ONE” of them still causes trouble, the one I assigned as engine default mouse pointer. If I do the seamless travel and don´t touch the screen it succeeds, a single click does generate this:
Hi Rudy, I got more info after dig on the trouble:
1 - Engine v: 4.7.6
2 - Different approach: When I set a cursor widget (more on this at bottom* and **) and try the SeamlessTravel (notice this just happens on SeamlessTravel) plus clicking+moving mouse the game crashes, turning the default mouse cursor to none on the engine settings this way not using any widget I can do whatever I want on the screen and the Travel does succeed.
My cursor widget did used a MaterialInstance to allow me to switch the pointer to some “non default” cursors, so (lots of guessing) I think the MaterialInstance is being held on some forbidden place while travelling making the widget don’t pass the IsInGameThread( ) assertion.
** I’ve tested the above theory by turning the cursor to MouseCursor::None and hiding it from PlayerController before SeamlessTrave and this still caused a crash, “BUT” when instead of a Widget showing a Material Instance as cursor image I did assigned a direct Texture I stopped getting crashes on Travels.
About the “GhostFrame”:
It’s in some way caused when the “Default” GameMode::PostSeamlessTravel( ) is called, on the HandleSeamlessTravelPlayer( ) call when replacing the Controller in some way (didn’t digged this code too much, sorry) looks like it sends the player to spectating mode causing the CameraManager control loss.
I overrided the PostSeamlessTravel method to don’t pass the PC by the HandleSeamlessTravelPlayer( ) replacement, give it a HUD, a Pawn and looks like everything is fine now (unless some programmer say this “hack?” will break something further, I’m asking on forums).
About the “Alien Waiting Widget”:
I still have no idea where is it on the engine, should be cool get access and control over it.
Thank you for the additional information it will help narrow things down. However, in order to make sure that we are getting the same results and that I have the correct information for the report (if needed), I will need you to answer questions 2 (Can you reproduce this in a clean project) and 3 (Provide the steps needed to reproduce this in a clean project).
2 - Didn’t tried yet.
3 - Probably will be complex to reach the crash state. LOL
I began the reproduction process just with mouse, widget and writting the controller, but looks like it “alone” doesn’t fires the crash while SeamlessTravel, what points that it needs to be “combined” with some other condition that my project is generating. When I disable the Default Cursor on Engine Settings (as I did) the crashs stops, this is certain.
I’ll take some time to get to the “same” state from a clean project…
I’ll post updates on this here.
We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. please respond to this message with the additional information that was mentioned in your previous post about reproducing this in a clean project and we will offer further assistance.