Widget Menu Navigation with Controller

I’ve tried a couple options online, but none really satisfied my needs, so here we go.

I have a widget menu with image-based buttons in a horizontal box. I’m trying to get input from my controller to navigate the menu.

I’ve found that I can set focus, and then navigate using arrow keys or the controller. This works somewhat, but is very sensitive on the controller, as it repeats the left/right navigation every tick. It also only shows a dotted line around the buttons, rather than the buttons’ hover state styles (also an image state).

I have tried all kinds of ways to set the image, restyle the buttons, store and use the current button index, and find any better way to control the navigation, but they’re all incredibly cumbersome. The only information I could find on how to handle this was from 2014, so I figured I’d ask and see if there have been any improvements to controller navigation within a widget menu.

This is the best option I’ve found for tutorials or reference, but even that doesn’t allow for using the existing hover states on the buttons, and is still very cumbersome. Unreal Engine 4 UMG Using a Gamepad - new version see below - YouTube

I used that exact setup once and had no problems.

Could you set up a sort of delay so that the tick doesn’t process the cycle unless the specified arrow key has been held down for a certain number if ticks?

Here’s what I’m picturing:

  1. Make an integer variable, something like HoldCount.
  2. After Event Tick, check to make sure the arrow key is pressed.
  3. If so, check the value of HoldCount:
    a. 0: Cycle one
    b. 1-20 (you’ll have to fine tune the second number): don’t cycle, but increment 1 to HoldCount
    c. >20: Cycle 1

That way, it should move one, pause, then speed-cycle until the arrow key is released.

I’m sorry, I on’t have suggestions for the hover issue.

Let me kow how that goes!

Hi there,
Old post but I just saw it, and just found a solution for this issue :
Since 4.16 you’ll find a WidgetInteractionComponent to add to your controller blueprint.
Orient it towards the controller so that when your controller is oriented through the 3d widget the interaction is available. (Note : You can switch “Interaction Source” parameter in some cases, ie if your widget and your interactionwidget are on the same controller (menu appears attached to controller).)
This made, you should be able to configure your trigger/thumbstick/whatever controller actions to fit your widget interactions.
See too : Creating 3D Widget Interaction | Unreal Engine Documentation