Our widget components for in-world UI are no longer accepting focus for keyboard input in packaged builds. Calls to blueprint nodes “Set Input Mode UI Only” or “Set User Focus” do not result in a text field being focused, or responding to keys pressed. Running in-editor gives the expected results. We’ve confirmed that this problem did not exist in 4.19, and begins once importing it to 4.20. We also see the same problem with a fresh proof-of-concept project in 4.20.
This feature is essential for UI in VR. We use it for the experience moderator entering the user’s email and name at the beginning of an experience.
So this looks like a general issue with 3D widgets, and a big one. I hope they fix it fast, my game is entirely unusable when packaged. I’ve already lost weeks and given the work i already did with 4.20 i can’t go back to 4.19, this is quite frustrating.
Yeah. I wasn’t much fun to be around this last week at work - it really took me about this long to track down what was causing this. It was kind of a perfect storm of obfuscating variables (our first multiplayer project, initially only showing up on the “client” so I thought it was a multiplayer issue, etc.) Nice to see that it wasn’t just me.
Doesn’t help much with typing into text fields though. We’d literally have to write our own keyboard logic and manipulate the string value of the text field.
I also have a widget interaction component always pointing at it. But the combination of Slate.EnableFastWidgetPath, the interaction component, and the delay before setting focus does the trick!
I needed the delay between the console command and the call to setting focus - something about the initialization order.
I can’t take total credit - there was a contact at Epic that helped us. I had tried both the delay and the fast widget path idea, but never both at the same time.
You definitely need to set focus after the console command and not before. But that command only needs to be done once - at the beginning of your application.