From cb7a9e006088d78c98b8632c7f8f52c59a6c9a5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulius=20Bal=C4=8Di=C5=ABnas?= Date: Mon, 13 Jul 2026 09:40:56 +0300 Subject: [PATCH 1/4] Add apple rumble docs --- Packages/com.unity.inputsystem/CHANGELOG.md | 2 +- .../com.unity.inputsystem/Documentation~/gamepad-haptics.md | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Packages/com.unity.inputsystem/CHANGELOG.md b/Packages/com.unity.inputsystem/CHANGELOG.md index b5adbadf03..43fcb9f0bd 100644 --- a/Packages/com.unity.inputsystem/CHANGELOG.md +++ b/Packages/com.unity.inputsystem/CHANGELOG.md @@ -40,7 +40,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Migrated sample scenes to use Universal Render Pipeline (URP) with Built-in Render Pipeline fallback shaders. The URP package is now required to run the samples. (ISX-2343) - Changed the UI for `Actions.inputactions` asset to use UI Toolkit framework. - Changed the UI for `InputSystem.inputsettings` asset to use UI Toolkit framework. -- Added documentation for rumble support on Android. +- Added documentation for rumble support on Android and iOS. ### Added diff --git a/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md b/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md index 60fb83a85e..060bfa64f1 100644 --- a/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md +++ b/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md @@ -29,6 +29,12 @@ Only the following combinations of devices/OSes currently support rumble: * Rumble support is limited. * Only one motor is supported. If the gamepad has more than one motor, the higher value of the left and right motor speed applies to both. * On some devices, motor speed control is limited. You can only set the left and right motor speed to either `1.0` (maximum speed) or `0.0` (turned off). +* Gamepads on iOS, tvOS, and visionOS. Requires Unity 6000.7 or later. + * Supports rumble on gamepads for which Apple's GameController framework exposes haptics, including PS4, PS5, Xbox, and Nintendo Switch Pro controllers. + * If the gamepad supports left and right motors, you can control the speed of each motor individually. Otherwise, the higher value of the left and right motor speed applies to all motors on the gamepad. + * The first [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call allocates rumble resources, which adds latency. + * When you set all motor speeds to `0.0`, an inactivity timer starts. After 2 minutes, the system releases rumble resources to preserve the controller's battery. The next [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call reallocates resources and again incurs allocation latency. + * Not every controller model exposes haptics through Apple's GameController framework. To confirm rumble support for a given controller, test it in a native application. ## Pausing, resuming, and stopping haptics From 5cab74031514cf2e39e9316d07f20d35021da827 Mon Sep 17 00:00:00 2001 From: pauliusb-unity Date: Mon, 13 Jul 2026 12:08:50 +0300 Subject: [PATCH 2/4] Update Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md Co-authored-by: kilroyandrew <104155051+kilroyandrew@users.noreply.github.com> --- .../com.unity.inputsystem/Documentation~/gamepad-haptics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md b/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md index 060bfa64f1..0d27eba282 100644 --- a/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md +++ b/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md @@ -30,7 +30,7 @@ Only the following combinations of devices/OSes currently support rumble: * Only one motor is supported. If the gamepad has more than one motor, the higher value of the left and right motor speed applies to both. * On some devices, motor speed control is limited. You can only set the left and right motor speed to either `1.0` (maximum speed) or `0.0` (turned off). * Gamepads on iOS, tvOS, and visionOS. Requires Unity 6000.7 or later. - * Supports rumble on gamepads for which Apple's GameController framework exposes haptics, including PS4, PS5, Xbox, and Nintendo Switch Pro controllers. + * Supports rumble on gamepads for which Apple's GameController framework exposes haptics. Supported gamepads include PS4, PS5, Xbox, and Nintendo Switch Pro controllers. * If the gamepad supports left and right motors, you can control the speed of each motor individually. Otherwise, the higher value of the left and right motor speed applies to all motors on the gamepad. * The first [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call allocates rumble resources, which adds latency. * When you set all motor speeds to `0.0`, an inactivity timer starts. After 2 minutes, the system releases rumble resources to preserve the controller's battery. The next [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call reallocates resources and again incurs allocation latency. From 8c933e75d541ca905d97b91fe96a4bc9f32080fe Mon Sep 17 00:00:00 2001 From: pauliusb-unity Date: Mon, 13 Jul 2026 12:09:29 +0300 Subject: [PATCH 3/4] Update Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md Co-authored-by: kilroyandrew <104155051+kilroyandrew@users.noreply.github.com> --- .../com.unity.inputsystem/Documentation~/gamepad-haptics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md b/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md index 0d27eba282..84b9dfe66c 100644 --- a/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md +++ b/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md @@ -34,7 +34,7 @@ Only the following combinations of devices/OSes currently support rumble: * If the gamepad supports left and right motors, you can control the speed of each motor individually. Otherwise, the higher value of the left and right motor speed applies to all motors on the gamepad. * The first [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call allocates rumble resources, which adds latency. * When you set all motor speeds to `0.0`, an inactivity timer starts. After 2 minutes, the system releases rumble resources to preserve the controller's battery. The next [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call reallocates resources and again incurs allocation latency. - * Not every controller model exposes haptics through Apple's GameController framework. To confirm rumble support for a given controller, test it in a native application. + * Not every controller model exposes haptics through Apple's GameController framework. To confirm rumble support for a given controller, it's recommended test using a native application. ## Pausing, resuming, and stopping haptics From 0b4d63335a5120c2dd240a1193c9c16f3cb41fff Mon Sep 17 00:00:00 2001 From: pauliusb-unity Date: Mon, 13 Jul 2026 12:10:01 +0300 Subject: [PATCH 4/4] Update Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md Co-authored-by: kilroyandrew <104155051+kilroyandrew@users.noreply.github.com> --- .../com.unity.inputsystem/Documentation~/gamepad-haptics.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md b/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md index 84b9dfe66c..ed13454101 100644 --- a/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md +++ b/Packages/com.unity.inputsystem/Documentation~/gamepad-haptics.md @@ -32,8 +32,7 @@ Only the following combinations of devices/OSes currently support rumble: * Gamepads on iOS, tvOS, and visionOS. Requires Unity 6000.7 or later. * Supports rumble on gamepads for which Apple's GameController framework exposes haptics. Supported gamepads include PS4, PS5, Xbox, and Nintendo Switch Pro controllers. * If the gamepad supports left and right motors, you can control the speed of each motor individually. Otherwise, the higher value of the left and right motor speed applies to all motors on the gamepad. - * The first [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call allocates rumble resources, which adds latency. - * When you set all motor speeds to `0.0`, an inactivity timer starts. After 2 minutes, the system releases rumble resources to preserve the controller's battery. The next [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call reallocates resources and again incurs allocation latency. + * The first [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call allocates rumble resources, which adds latency. When you set all motor speeds to `0.0`, an inactivity timer starts. After 2 minutes, the system releases rumble resources to preserve the controller's battery. The next [`SetMotorSpeeds`](xref:UnityEngine.InputSystem.Haptics.IDualMotorRumble) call reallocates resources, adding further latency. * Not every controller model exposes haptics through Apple's GameController framework. To confirm rumble support for a given controller, it's recommended test using a native application. ## Pausing, resuming, and stopping haptics