I have a Widget component in my world with some buttons that I want to interact with using either the mouse or the gamepad. Inside the widget I overrode OnKeyDown to activate the click event for a button when a face button is pressed. This all works if I add my widget to the viewport and set the input mode to UI only.
I created an actor with a widget interaction component and set it to Auto Receive Input from Player 0. Inside its event graph I added Press/Release Pointer Key calls when the left mouse button is pressed and Press/Release Key calls when any face buttons are pressed. The clicking works the way I expect, I click on a button in the world and the event happens.
However, I can’t get the face button presses to work correctly when the widget is placed in the world. Without doing anything special, my actor with the interaction component gets the face button presses but they don’t get passed on to my widget because it’s not in focus. If I set the input mode to Game and UI or UI only then the input events never happen for my actor so it can’t pass them on to my widget. I have found that if you click on one of the buttons first, then switch to the gamepad it does work correctly but the user shouldn’t have to do that if they want to play our game with a gamepad.
Is there a step that I’m missing or is this just a missing feature due to the widget interaction component being experimental?