FAQ


There can be quite a few nuances when working with controllers. This section is structured as a list of questions that should help developers review those nuances, as well as, other controller considerations. The following nomenclature will be used:

General Controller Use

Do you auto-detect for controller(s) and put game into “controller” mode?

A: The Basics List: Auto-Detect the Controller

U, U42: Unity API Specifics: Auto-Detect the Controller

Do you still have unneeded controls on screen?

All: The Basics List: Remove all on-screen touch controls/elements

Are you taking into account that multiple controllers can be connected to device?

All: The Basics List: Expect multiple controllers to be connected

Are you using the controller’s name somewhere and branching in your code?

All: The Basics List: Avoid developing for specific controllers

All: Advanced Topics and Considerations: Specific Controller Tuning

Are you handling controller disconnects?

All: Advanced Topics and Considerations: Controller Disconnects

A: Android API Specifics: Handling Multiple Controllers and Disconnects

U, U42: Unity API Specifics: Handling Controller Disconnects

Are you using the reported deadzone from the controller?

A: Android API Specifics: Handling Controller Flats/Deadzones

Are you using the LS like a DPAD?

All: Advanced Topics and Considerations: Analog Sticks and Precision

Are you using axes and not returning true back to Android?

A: Android API Specifics: Motion Events

Are you filtering input events by using SOURCE_GAMEPAD and SOURCE_JOYSTICK but not filtering system keys like Back, Menu, and Volume?

A: Android API Specifics: Filtering Events

Have you considered other likely controllers, “The Remote” and “The Mini-Controller”?

All: Android TV and Micro-Consoles: The Remote

All: Android TV and Micro-Consoles: The Mini-Controller

A: Android TV and Micro-Consoles: Remote and Mini-Controller Sources

U, U42: Android TV and Micro-Consoles: Critical Note on Unity

The User Interface

In complex control schemes, have you explained how to use the controller?

All: The Basics List: Bring up a controller map at least one time

Can user tell where they are? Can they get everywhere? Can they exit without BACK?

All: The Basics List: In the UI . . .

Television, Micro-Consoles, Android TV, and Connecting through HDMI

Have you tested using HDMI with consideration to resolution?

All: The Basics List: Include testing using HDMI

Make sure you are using the input events as listed in “The Table” below?

All: See The Table.

Do you need touchscreen on some parts of your game?

All: The Basics List: Support the micro-consoles properly

Is your UI sized right for the larger screen?

All: Android TV and Micro-Consoles: UI Size

Have you considered TV overscan?

All: Android TV and Micro-Consoles: TV Safe Area

It takes very few changes to be on Android TV, make sure you’ve completed all of them.

All: Android TV and Micro-Consoles: Android TV Needs

Unity Specific

Are you using Unity previous to v4.3?

U42: The Specification in Unity v4.3 and later (chart), see introduction

Are you handling multiple controllers correctly?

U, U42: Unity API Specifics: Handling Multiple Controllers

U, U42: Android TV and Micro-Consoles: Critical Note on Unity

Are you doing anything special to handle the triggers? You should be.

U: Unity v4.3 and Later: Handling the Triggers

U42: Unity Pre-v4.3: Handling the Triggers

Controllers, even in single player need to be handled in a particular way.

U42: Unity Pre-v4.3: Handling Multiple Connected Controllers in Single Player Games

To handle the controller specification, the InputManager must be setup properly.

U: Unity v4.3 and Later: Changes Needed for Input Manager

Miscellaneous

Have you tested using the ART runtime?

All: The Basics List: Test using the ART runtime

Do you want to add PC-like mouse support in your game?

A: Handling Mouse in Android

The Table

The table below compiles all the keycodes and their traditional use, if there is one, for Unity and Android, in a single list. This list should only be considered a double-check or summary, and should not take the place of the document at large. Given the controller(s) you want to support, be sure you are using all the codes provided below.

 

 


NVIDIA® GameWorks™ Documentation Rev. 1.0.200601 ©2014-2020. NVIDIA Corporation. All Rights Reserved.