Below, you will see the specification that has been previously described. The first page is for people using the Android APIs, the second is for Unity developers.
As of this writing, this specification takes into account over 25 different controllers from the major consoles to all major third party manufacturers. Moreover, with Google and NVIDIA recommending this specification to developers, as well as controller manufacturers, that number will only continue to grow.
Take special care to read all of the notes here, as they are important to fully implement the specification.
The representative gamepad below shows an amalgam of standards brought together to simplify input handling for the developer. Please note certain controllers can issue multiple events for a single action which can safely be ignored, except the triggers — see the notes in that section. The developer only needs to handle the events listed here.
AXIS_RTRIGGER
may also output AXIS_GAS
with the exact same values. See the pseudo-code in the bottom of The Shoulder Buttons section.MotionEvents
– in other words, you will only handle the DPAD buttons — you can ignore handling AXIS_HAT
values for the DPAD. Android will generate the proper DPAD equivalents for AXIS_HAT
and AXIS_X/Y
for you.For the broadest range of plug and play support, we recommend using this controller as your default. If possible, it is also recommended that you use a controller setup screen. This is an Options screen, in which users assign controller functions to application functions. There are several Unity plug-ins available to help you along.
NVIDIA® GameWorks™ Documentation Rev. 1.0.220830 ©2014-2022. NVIDIA Corporation and affiliates. All Rights Reserved.