(Using the latest preview of 4.6)
The UMG widgets seem like they are missing a state in their styles. There is currently Normal, Hovered, Pressed and Disabled, but it’s missing Active. Active would show that that widget has the current focus. This is important for interfaces that don’t have mouse or touch controls. If you just have the keyboard or gamepad, then the UI needs to show the Active focus widget. In the UE4 editor using slate, it appears this state is supported. Tabbing through widgets shows a hashed outline of the widget. I don’t see this exposed to UMG, though. Maybe I just missed how to do this?
I’ve also experimented with the 3d widget, which seems to be easy to use, but it doesn’t look like it even accepts keyboard/gamepad input. Is there a way to capture focus of the keyboard/gamepad to a specific 3d widget? It currently looks like it does a hit test from the mouse position, but that isn’t going to be helpful for gamepad only games.
IMO this is really necessary.
Wouldn’t the “Hover” satisfy that requirement as a visual representation of the “active” or “focused” object? (I mean the visual state is there but the functionality would have to overlap).
Hover shows what control is under the mouse. Active would show what the dpad selection is. I haven’t checked on UMG in a long time, so I don’t know maybe it’s got it now.
Both “hover” and “active” essentially provide the same information. They show that if you have component focus. That if you perform the primary action (press the left mouse button or select “A” on the gamepad) then you’ll trigger the action associated with the the component.
The button state really should be called “Focused” rather than “Hovered”.
Focus isn’t set to a widget when you Hover over it with the mouse, so the state is different.
As far as i know, is not already suported.
For my game i made a trick.
I check the movements on the pad, and i change a variable acording that movement. Then using this variable I change the visuals on the buttons, the background and the text colors. So you got the same functionality you need.
Let me know if you need a screenshot of the blueprint, right now i am not at home, and cant send it.