Skip to content

Commit b789f22

Browse files
Update SupportedDevices.md
1 parent e492059 commit b789f22

1 file changed

Lines changed: 102 additions & 45 deletions

File tree

Packages/com.unity.inputsystem/Documentation~/SupportedDevices.md

Lines changed: 102 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,57 +3,118 @@ uid: input-system-supported-devices
33
---
44
# Supported Input Devices
55

6-
This page lists Input Device types and products that the Input System package supports, and the platforms they're supported on.
6+
This page lists Input Device types and products that the Input System package supports, and the platforms they're supported on. The devices are divided into the following categories:
77

8-
## Generic
8+
* [Generic devices](#generic-devices): pointers, keyboards, and joysticks which don't require specialized support of particular products.
9+
* [Gamepads](#gamepads): devices which might require specialized platform support.
910

10-
Support for the following Devices doesn't require specialized support of particular products.
11+
## Generic devices
1112

12-
|Device|Windows|Mac|Linux|UWP|Android|iOS|tvOS|Xbox(3)|PS4(3)|Switch(3)|WebGL|
13-
|------|-------|---|-----|---|-------|---|----|----|---|------|-----|
14-
|[Mouse](xref:input-system-mouse)|Yes|Yes|Yes|Yes|Yes|No|No|Yes|Yes|No|Yes|
15-
|[Keyboard](xref:input-system-keyboard)|Yes|Yes|Yes|Yes|Yes|No|No|Yes|Yes|No|Yes|
16-
|[Pen](xref:input-system-pen)|Yes|No |No|Yes|Yes|Yes|No|No|No|No|No|
17-
|[Touchscreen](xref:input-system-touch)|Yes|No|Yes|Yes|Yes|Yes|Yes(4)|No|No|No|Yes|
18-
|[Sensors](xref:input-system-sensors)|No|No|No|No|Yes|Yes|No|No|No|No|Yes(5)|
19-
|[Joystick](#other-gamepads-joysticks-and-racing-wheels) (2)|Yes|Yes|Yes|Yes|Yes|No|No|No|No|No|Yes|
13+
Support for the following devices doesn't require specialized support of particular products. The following table outlines the generic devices that each platform supports.
14+
15+
| | Mouse | Keyboard | Pen | Touchscreen | Sensors | Joystick (as a generic HID device) |
16+
| :---- | :---- | :---- | :---- | :---- | :---- | :---- |
17+
| **Windows** | Supported | Supported | Supported | Supported | Not supported | Supported |
18+
| **macOS** | Supported | Supported | Not supported | Not supported | Not supported | Supported |
19+
| **Linux** | Supported | Supported | Not supported | Supported | Not supported | Supported |
20+
| **UWP** | Supported | Supported | Supported | Supported | Not supported | Supported |
21+
| **Android** | Supported | Supported | Supported | Supported | Supported | Supported |
22+
| **iOS** | Not supported | Not supported | Supported | Supported | Supported | Not supported |
23+
| **tvOS** | Not supported | Not supported | Not supported | Supported (indirect touches received from Siri Remote) | Not supported | Not supported |
24+
| **Xbox** | Supported | Supported | Not supported | Not supported | Not supported | Not supported |
25+
| **PlayStation** | Supported | Supported | Not supported | Not supported | Not supported | Not supported |
26+
| **Switch** | Not supported | Not supported | Not supported | Not supported | Not supported | Not supported |
27+
| **WebGL** | Supported | Supported | Not supported | Supported | Supported (Android and iOS from Unity 2021.2) | Supported |
2028

2129
> [!NOTE]
22-
> 1. Joysticks are supported as generic HIDs, refer to [Other gamepads, joysticks, and racing wheels](#other-gamepads-joysticks-and-racing-wheels) to learn more.
23-
> 2. Consoles are supported using separate packages. You need to install these packages in your Project to enable console support.
24-
> 3. Indirect touches are received from Siri Remote.
25-
> 4. Sensor support for WebGL on Android and iOS devices is available in Unity 2021.2
30+
> * Joysticks are supported as generic HIDs; refer to [Other gamepads, joysticks, and racing wheels](#other-gamepads-joysticks-and-racing-wheels) to learn more.
31+
> * Consoles are supported using separate packages. You need to install these packages in your Project to enable console support.
32+
33+
### Other gamepads, joysticks, and racing wheels
34+
35+
The Input System supports any Device which implements the USB HID specification. However, for Devices which don't have specific [layouts](xref:input-system-layouts) implemented in the Input System, the system can only surface the information available from the HID descriptor of the Device, which limits how precisely it can describe a control. These Devices often work best when allowing the user to [manually remap the controls](xref:UnityEngine.InputSystem.InputActionRebindingExtensions). If you need to support a specific Device, you can also [add your own mapping for it](xref:input-system-hid#creating-a-custom-device-layout). See documentation on [HID](xref:input-system-hid) for more information.
2636

2737
## Gamepads
2838

29-
|Device|Windows|Mac|Linux|UWP(13)|Android|iOS(6)|tvOS(6)|Xbox(7)|PS4/PS5(7)|Switch(7)|WebGL|
30-
|------|-------|---|-----|---|-------|---|----|----|---|------|-----|
31-
|Xbox 360 (4)|Yes|Yes (3)|Yes|Yes|No|No|No|Yes|No|No|Sometimes (2)|
32-
|Xbox One|Yes (1)|Yes (3)|Yes (1)|Yes|Yes (1)|Yes (6)|Yes (6)|Yes|No|No|Sometimes (2)|
33-
|PS3/PS4|Yes (5)|Yes (5)|Yes (5)|Yes (5)|Yes (5, 8)|Yes (5, 6)|Yes (5, 6)|No|Yes|No|Sometimes (2)|
34-
|PS5|Yes (11)|Yes (11)|Yes (11)|Yes (11)|Yes (9, 11)|No (11)|No (11)|No|Yes|No|Sometimes (2)|
35-
|Switch|Yes (10)|Yes (10)|Yes|Yes|No|No|No|No|No|Yes|Sometimes (2)|
36-
|MFi (such as SteelSeries)|No|Sometimes (12)|No|No|No|Yes|Yes|No|No|No|No|
39+
The reference tables are organized by platform type:
40+
41+
* [Desktop](#desktop-device-support): Windows, macOS, Linux, Universal Windows Platform
42+
* [Mobile](#mobile-device-support): Android, iOS, tvOS
43+
* [Consoles](#console-device-support): Xbox, PlayStation, Switch
44+
* [WebGL](#webgl-device-support)
45+
46+
The reference tables use the following support levels:
47+
48+
* **Supported**: Works with Unity projects.
49+
* **Partially**: Only some functionality of the gamepad works with Unity projects.
50+
* **Not supported**: Device not supported by Unity.
51+
* **Not compatible**: Device not supported by the platform.
52+
53+
### Desktop device support
54+
55+
| Gamepad | Windows | macOS | Linux | Universal Windows Platform |
56+
| :---- | :---- | :---- | :---- | :---- |
57+
| **Xbox 360** | Supported | Supported ([driver required](https://github.com/360Controller/360Controller)) | Supported | Supported |
58+
| **Xbox One** | Supported (trigger motors only on UWP and Xbox) | Supported ([driver required](https://github.com/360Controller/360Controller)) | Supported (trigger motors only on UWP and Xbox) | Supported |
59+
| **PS3/PS4** | Supported (no motor rumble or light bar over Bluetooth) | Supported (no motor rumble or light bar over Bluetooth) | Supported (no motor rumble or light bar over Bluetooth) | Supported (USB only) |
60+
| **PS5** | Supported | Supported | Supported (Unity 6000.4+, [additional setup on some distributions](#ps5-controller-support-on-linux)) | Supported |
61+
| **Switch** | Supported (official accessories only) | Supported (official accessories only) | Supported | Supported |
62+
| **MFi (such as SteelSeries)** | Not supported | Partially (SteelSeries Nimbus+ via HID) | Not supported | Not supported |
3763

3864
> [!NOTE]
39-
> 1. The trigger motors on the Xbox One controller are only supported on UWP and Xbox.
40-
> 2. WebGL support varies between browsers, Devices, and operating systems.
41-
> 3. XInput controllers on macOS currently require the installation of the [Xbox Controller Driver for macOS](https://github.com/360Controller/360Controller). This driver only supports only USB connections, and doesn't support wireless dongles. However, the latest generation of Xbox One controllers natively support Bluetooth, and are natively supported on Macs as HIDs without any additional drivers when connected via Bluetooth.
42-
> 4. This includes any XInput-compatible Device.
43-
> 5. Unity doesn't support motor rumble and light bar color over Bluetooth. Unity doesn't support the gyro or accelerometer on PS4/PS5 controllers on platforms other than the PlayStation consoles. Unity also doesn't support the DualShock 4 USB Wireless Adapter. On UWP, only USB connection is supported, motor rumble and light bar are not working correctly.
44-
> 6. Unity supports Made for iOS (MFi) certified controllers on iOS. Xbox One and PS4 controllers are only supported on iOS 13 or higher.
45-
> 7. Consoles are supported using separate packages. You need to install these packages in your Project to enable console support.
46-
> 8. Unity supports PS4 controllers on Android devices running [Android 10 or higher](https://playstation.com/en-us/support/hardware/ps4-pair-dualshock-4-wireless-with-sony-xperia-and-android).
47-
> 9. Unity supports PS5 controllers on Android devices running [Android 12 or higher](https://playstation.com/en-gb/support/hardware/pair-dualsense-controller-bluetooth/).
48-
> 10. Switch Joy-Cons are not currently supported on Windows and Mac. Some of official accessories are supported on Windows and Mac: "Hori Co HORIPAD for Nintendo Switch", "HORI Pokken Tournament DX Pro Pad", "HORI Wireless Switch Pad", "HORI Real Arcade Pro V Hayabusa in Switch Mode", "PowerA NSW Fusion Wired FightPad", "PowerA NSW Fusion Pro Controller (USB only)", "PDP Wired Fight Pad Pro: Mario", "PDP Faceoff Wired Pro Controller for Nintendo Switch", "PDP Faceoff Deluxe Wired Pro Controller for Nintendo Switch", "PDP Afterglow Wireless Switch Controller", "PDP Rockcandy Wired Controller".
49-
> 11. PS5 DualSense is supported on Windows, macOS, and Linux via USB HID. Linux support begins with Unity Editor 6000.4 (refer to [PS5 controller support on Linux](#ps5-controller-support-on-linux)). On all platforms, setting motor rumble and light bar color when connected over Bluetooth is currently not supported.
50-
> 12. SteelSeries Nimbus+ supported via HID on macOS.
51-
> - On UWP only USB connection is supported, motor rumble and light bar are not working correctly.
52-
> - On Android it's expected to be working from Android 12.
53-
> - On iOS/tvOS it's currently recognized as a generic gamepad and most controls do work.
54-
> 13. To ensure all controller types are detected on UWP, enable the HumanInterfaceDevice setting in [UWP Player Settings](https://docs.unity3d.com/Manual/class-PlayerSettingsWSA.html#Capabilities).
55-
56-
### WebGL
65+
> * XInput controllers on macOS require the [Xbox Controller Driver for macOS](https://github.com/360Controller/360Controller). This driver only supports USB connections, and doesn't support wireless dongles. However, the latest generation of Xbox One controllers natively support Bluetooth, and are natively supported on Macs as HIDs without any additional drivers when connected via Bluetooth.
66+
> * Unity doesn't support motor rumble and light bar color over Bluetooth. Unity doesn't support the gyro or accelerometer on PS4/PS5 controllers on platforms other than the PlayStation consoles. Unity also doesn't support the DualShock 4 USB Wireless Adapter. On UWP, only USB connection is supported, motor rumble and light bar are not working correctly.
67+
> * PS5 DualSense is supported on Windows, macOS, and Linux via USB HID. Linux support begins with Unity Editor 6000.4 (refer to [PS5 controller support on Linux](#ps5-controller-support-on-linux)). On all platforms, setting motor rumble and light bar color when connected over Bluetooth is currently not supported.
68+
> * SteelSeries Nimbus+ is supported via HID on macOS. On UWP only USB connection is supported, motor rumble and light bar are not working correctly. On Android it's expected to be working from Android 12. On iOS/tvOS it's currently recognized as a generic gamepad and most controls do work.
69+
70+
#### Windows and macOS
71+
72+
Switch Joy-Cons aren't supported on Windows and macOS. The following official accessories are supported:
73+
74+
* Hori Co HORIPAD for Nintendo Switch
75+
* HORI Pokken Tournament DX Pro Pad
76+
* HORI Wireless Switch Pad
77+
* HORI Real Arcade Pro V Hayabusa in Switch Mode
78+
* PowerA NSW Fusion Wired FightPad
79+
* PowerA NSW Fusion Pro Controller (USB only)
80+
* PDP Wired Fight Pad Pro: Mario
81+
* PDP Faceoff Wired Pro Controller for Nintendo Switch
82+
* PDP Faceoff Deluxe Wired Pro Controller for Nintendo Switch
83+
* PDP Afterglow Wireless Switch Controller
84+
* PDP Rockcandy Wired Controller
85+
86+
#### Universal Windows Platform
87+
88+
To ensure all controller types are detected on UWP, enable the HumanInterfaceDevice setting in [UWP Player Settings](https://docs.unity3d.com/Manual/class-PlayerSettingsWSA.html#Capabilities).
89+
90+
### Mobile device support
91+
92+
| Gamepad | Android | iOS | tvOS |
93+
| :---- | :---- | :---- | :---- |
94+
| **Xbox 360** | Not supported | Not supported | Not supported |
95+
| **Xbox One** | Supported | Supported (iOS 13+) | Supported (iOS 13+) |
96+
| **PS3/PS4** | Supported (Android 10+) | Supported (iOS 13+) | Supported |
97+
| **PS5** | Supported (Android 12+) | Not supported | Not supported |
98+
| **Switch** | Not supported | Not supported | Not supported |
99+
| **MFi (such as SteelSeries)** | Not supported (expected from Android 12) | Supported | Supported |
100+
101+
> [!NOTE]
102+
> * Unity supports Made for iOS (MFi) certified controllers on iOS. Xbox One and PS4 controllers are only supported on iOS 13 or higher.
103+
> * Unity supports PS4 controllers on Android devices running [Android 10 or higher](https://playstation.com/en-us/support/hardware/ps4-pair-dualshock-4-wireless-with-sony-xperia-and-android), and PS5 controllers on Android devices running [Android 12 or higher](https://playstation.com/en-gb/support/hardware/pair-dualsense-controller-bluetooth/).
104+
105+
### Console device support
106+
107+
For information on developing for PlayStation®4, PlayStation®5, Xbox One, Xbox Series S|X, and Nintendo Switch™, refer to the [Game Development For Console Platforms](https://unity.com/solutions/console) page. Consoles are supported using separate packages. You need to install these packages in your Project to enable console support.
108+
109+
| Gamepad | Xbox | PlayStation | Switch |
110+
| :---- | :---- | :---- | :---- |
111+
| **Xbox 360** | Supported | Not supported | Not supported |
112+
| **Xbox One** | Supported | Not supported | Not supported |
113+
| **PS3/PS4** | Not supported | Supported | Not supported |
114+
| **PS5** | Not supported | Supported | Not supported |
115+
| **Switch** | Not supported | Not supported | Supported |
116+
117+
### WebGL device support
57118

58119
The Input System supports the *Standard Gamepad* mapping as specified in the [W3C Gamepad Specification](https://www.w3.org/TR/gamepad/#remapping). It also supports gamepads and joysticks that the browser surfaces without a mapping, but this support is generally limited to detecting the axes and buttons which are present, without any context as to what they mean. This means gamepads and joysticks are generally only useful when [the user manually remaps them](xref:UnityEngine.InputSystem.InputActionRebindingExtensions). The Input System reports these Devices as generic [`Joysticks`](xref:UnityEngine.InputSystem.Joystick).
59120

@@ -62,10 +123,6 @@ Support varies between browsers, Devices, and operating systems, and further dif
62123
> [!NOTE]
63124
> WebGL currently doesn't support rumble.
64125
65-
## Other gamepads, joysticks, and racing wheels
66-
67-
The Input System supports any Device which implements the USB HID specification. However, for Devices which don't have specific [layouts](xref:input-system-layouts) implemented in the Input System, the system can only surface the information available from the HID descriptor of the Device, which limits how precisely it can describe a control. These Devices often work best when allowing the user to [manually remap the controls](xref:UnityEngine.InputSystem.InputActionRebindingExtensions). If you need to support a specific Device, you can also [add your own mapping for it](xref:input-system-hid#creating-a-custom-device-layout). See documentation on [HID](xref:input-system-hid) for more information.
68-
69126
## PS5 controller support on Linux
70127

71128
Some Linux distributions restrict access to HIDRAW devices by default. If your user account doesn't have permission to access the PS5 controller through HIDRAW, Unity will fall back to treating the controller as a standard gamepad.

0 commit comments

Comments
 (0)