Developer Console

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