Mappings of Mappings

As the Better Navigation System supports several Input Systems, it cannot provide a direct input mapping to the corresponding input system. Instead, it introduces another layer with fixed mapping-names.

So the lookup is like this:
Better Navigation's Input Binding Used Input System's Input Mapping Actual Gamepad Button (or key on keyboard...)


Of course, you can define a mapping of your choice in the Input Module and Input Module Addition and it is not necessary to define all mappings if you don't use them.

But here is the mapping how it is supposed to be bound (bindings of the Input Module are in curly brackets):


Note that everything (except for the left stick) is treated as buttons. So, there are semi-down-states for the trigger buttons and the right stick is not supported. Also the special buttons are not supported.


Assigning Input Action Bindings

When you can define an input action binding (for example in an Input Button Trigger) you can select from a drop-down the input action as well as the timing for the binding. If you don't want a binding, you can click the x-button on the right:


When you open the drop-down, you can see five section:

  1. None
    Use this if you don't want to bind a button.
  2. Standard Navigation
    This is for the standard navigation, usually the left stick. You can check for a specific direction, or if the user tries to move into any direction.
  3. Standard Actions
    Check for the Submit or Cancel Action (defined in the Input Module)
  4. Additional Actions
    Check for Actions which are defined by the current Input Module Addition.
  5. Timings
    You can select multiple entries or none here:
    • Began
      Triggers when the Button was just pressed down.
    • Repeated
      Triggers as long as the button is held down multiple times with an interval in between. That interval is defined in the Input Module.
    • Ended
      Triggers when the Button was just released.
    • Nothing Selected
      Triggers every frame as long as the button is pressed.



Note that you can only select one Entry of the first four section, but as many entries of the Timings-Section as you want.

Internally this is realized with a flags-enum and a smart way to evaluate the values in the inspector. If you really want, you could find a way to select multiple values of the upper sections, but this wouldn't work (you cannot detect multiple buttons simultaneously with this system).


Visualization

It makes sense to display a hint to the user if a special button can be pressed. Therefore, every Input Action Binding in Better UI comes with a Input Action Visualization. While the logic behind this is all in the system, the actual visualization needs to be implemented by yourself.