Controller Input with Unity (Fire TV)
You can use the Unity development tools to create apps and games for Amazon Fire TV devices as you would any Android device.
Although we do not provide a Unity plugin for Fire TV development, there are packages in the Unity Asset Store to enable game controller support. In particular, InControl by Gallant Games is one with which our developers have had great success. InControl is a cross-platform input manager for Unity3D that standardizes control mappings for a variety of common controllers.
You can also use the Unity input manager to configure controller input for your game. Use the tables below to map the buttons on the Amazon Fire TV remotes and game controllers with the Unity input manager buttons and axes.
Remote Control Input
Use these values in Unity to map the buttons on both the Amazon Fire TV Remote and Voice Remote. See KeyCode for more details about Unity KeyCode values.
Some remote controllers have additional buttons — such as volume up/down, power, Netflix, Amazon Prime, and other apps. However, these buttons can't be mapped to events in third-party apps.
Button | Unity Input Manager Value | Unity KeyCode Value |
---|---|---|
Home | none (system event) | none (system event) |
Back | none (not supported) | KeyCode.Escape |
Menu | none (not supported) | KeyCode.Menu |
Microphone (Search) | none (system event) | none (system event) |
Select (D-Pad Center) | joystick button 0 | KeyCode.JoystickButton0 |
Left (D-Pad) | 5th Axis | KeyCode.LeftArrow |
Right (D-Pad) | 5th Axis | KeyCode.RightArrow |
Up (D-Pad) | 6th Axis | KeyCode.UpArrow |
Down (D-Pad) | 6th Axis | KeyCode.DownArrow |
Play/Pause | none (not supported) | none (not supported) |
Rewind | none (not supported) | none (not supported) |
Fast Forward | none (not supported) | none (not supported) |
Game Controller Input
Use these values in Unity to map the buttons on the Amazon Fire Game Controller. See KeyCode for more details about Unity KeyCode values.
The current version of the Fire TV Game Controller has these buttons:
The previous version of the Game Controller has these buttons:
Game Controller Button | Unity Input Manager Value | Unity KeyCode Value |
---|---|---|
Home | none (system event) | none (system event) |
Back | none (system event) | KeyCode.Escape |
Menu | none (system event) | KeyCode.Menu |
A | joystick button 0 | KeyCode.JoystickButton0 |
B | joystick button 1 | KeyCode.JoystickButton1 |
X | joystick button 2 | KeyCode.JoystickButton2 |
Y | joystick button 3 | KeyCode.JoystickButton3 |
Left (D-Pad) | 5th Axis | none |
Right (D-Pad) | 5th Axis | none |
Up (D-Pad) | 6th Axis | none |
Down (D-Pad) | 6th Axis | none |
Left Stick (Left/Right) | X Axis 1st Axis | none |
Left Stick (Up/Down) | Y Axis 2nd Axis | none |
Left Stick Press | joystick button 8 | KeyCode.JoystickButton8 |
Right Stick (Left/Right) | 3rd Axis | none |
Right Stick (Up/Down) | 4th Axis | none |
Right Stick Press | joystick button 9 | KeyCode.JoystickButton9 |
Play/Pause (1st version only) | none (not supported) | none (not supported) |
Rewind (1st version only) | none (not supported) | none (not supported) |
Fast Forward (1st version only) | none (not supported) | none (not supported) |
Left Trigger (L2) | 13th Axis | none |
Left Shoulder (L1) | joystick button 4 | KeyCode.LeftShift KeyCode.JoystickButton4 |
Right Trigger (R2) | 12th Axis | none |
Right Shoulder (R1) | joystick button 5 | KeyCode.RightShift KeyCode.JoystickButton5 |
Controller Names
Controller names are available in Unity with the Input.GetJoystickNames()
method. Use these values for each controller:
- Remote:
"Amazon Fire TV Remote"
- Voice Remote:
"Amazon Fire TV Remote"
- Game controller:
"Amazon Fire Game Controller"
Last updated: Oct 29, 2020