Below is a high-level list of commonly missed items when considering high quality controller support. Some topics may be covered more in depth in further sections.
InputDevice.getDeviceIds()
and then InputDevice.getDevice(int id)
should be all you need to detect whether a controller is connected on application startup. While an application is already running, you can wait for the first event from a controller if this will work in your design, and ask from which device the event came. Detecting a controller in Unity will be discussed in a later section.![]() | NOTE: For the typical “action buttons” on a controller, the nomenclature that will be used is Y for the button at 12 o’clock, B for 3 o’clock, A for 6 o’clock, and X for 9 o’clock. For the button in the middle of a DPAD, think TV remote control, the nomenclature that will be used is OK. YBAX and OK are commonly printed on input controllers in those positions. |
Navigation Control | |
---|---|
Positive/OK Answer | A or X button LS or RS pressed down OK button |
Negative/Cancel Answer | Y or B button Left Middle button (e.g. BACK) |
UI Focus Movement | LS movement DPAD movement |
Tab/Page Movement | Left and Right Bumpers Left and Right Triggers |
In-Application Pause/Options | Right Middle button (e.g. START) Left Middle button (e.g. BACK) |
Go Back | Left Middle button (e.g. BACK) |
NVIDIA® GameWorks™ Documentation Rev. 1.0.220830 ©2014-2022. NVIDIA Corporation and affiliates. All Rights Reserved.