Overriding default Navigation with Common UI and Enhanced Input

Hi there, I have made an UI for my game that consists of several independant panels. What I want for the UI on gamepad is this:

D-Pad left-right-up-down: change panel

Left stick: navigate through the UI elements of that panel

Right stick: browse elements inside a control (for example a list) or increase/decrease a value

It’s pretty straightforward I think but it seems that something won’t let me do that. I’ve had some success with keys such as F4 but for the D-Pad controls nothing works. When using the left and right sticks or D-Pad I get an inconsistent navigation instead.

What am I doing wrong?

1 Like

It looks like I just need to override FNavigationConfig, not 100% clear to me yet but I could disable most stuff by using FNullNavigationConfig.

#include "Framework/Application/NavigationConfig.h"

AMyPlayerController::AMyPlayerController()
{
	FSlateApplication::Get().SetNavigationConfig(MakeShared<FNullNavigationConfig>());
}

The thing is that I still don’t get the gamepad events.

See my reply there: Input is overridden by navigation input in Common UI. How to override? - #4 by mattai

You basically need to use a custom subclass to define the buttons you want to link to navigation and/or free the ones already allocated.

1 Like