Maze / Library /PackageCache /com.unity.inputsystem@1.6.1 /InputSystem /Devices /Haptics /IHaptics.cs
| ////REVIEW: Devices usually will automatically shut down haptics if they haven't received a haptics command in some time. | |
| //// How should we deal with that? Should haptics automatically refresh themselves periodically while they are set? | |
| ////REVIEW: Do we need a mute in addition to a pause? | |
| namespace UnityEngine.InputSystem.Haptics | |
| { | |
| /// <summary> | |
| /// Base interface for haptics on input devices. | |
| /// </summary> | |
| /// <remarks> | |
| /// To support haptics, an <see cref="InputDevice"/> has to implement one or more | |
| /// haptics interfaces. | |
| /// </remarks> | |
| /// <example> | |
| /// <code> | |
| /// class MyDevice : InputDevice, IDualMotorRumble | |
| /// { | |
| /// private DualMotorRumble m_Rumble; | |
| /// | |
| /// public void SetMotorSpeeds(float lowFrequency, float highFrequency) | |
| /// { | |
| /// m_Rumble.SetMotorSpeeds(lowFrequency, highFrequency); | |
| /// } | |
| /// | |
| /// public void PauseHaptics() | |
| /// { | |
| /// m_Rumble.PauseHaptics(); | |
| /// } | |
| /// | |
| /// public void ResumeHaptics() | |
| /// { | |
| /// m_Rumble.ResumeHaptics(); | |
| /// } | |
| /// | |
| /// public void ResetHaptics() | |
| /// { | |
| /// m_Rumble.ResetHaptics(); | |
| /// } | |
| /// } | |
| /// </code> | |
| /// </example> | |
| /// <seealso cref="InputSystem.PauseHaptics"/> | |
| /// <seealso cref="InputSystem.ResumeHaptics"/> | |
| /// <seealso cref="InputSystem.ResetHaptics"/> | |
| public interface IHaptics | |
| { | |
| /// <summary> | |
| /// Pause haptics playback on the device. | |
| /// </summary> | |
| /// <remarks> | |
| /// This should preserve current playback settings (such as motor speed levels | |
| /// or effect playback positions) but shut down feedback effects on the device. | |
| /// | |
| /// If proper resumption of effects is not possible, playback should be stopped | |
| /// and <see cref="ResumeHaptics"/> is allowed to be a no-operation. | |
| /// | |
| /// Note that haptics playback states are not required to survive domain reloads | |
| /// in the editor. | |
| /// </remarks> | |
| /// <seealso cref="ResumeHaptics"/> | |
| void PauseHaptics(); | |
| /// <summary> | |
| /// Resume haptics playback on the device. | |
| /// </summary> | |
| /// <remarks> | |
| /// Should be called after calling <see cref="PauseHaptics"/>. Otherwise does | |
| /// nothing. | |
| /// </remarks> | |
| void ResumeHaptics(); | |
| /// <summary> | |
| /// Reset haptics playback on the device to its default state. | |
| /// </summary> | |
| /// <remarks> | |
| /// This will turn off all haptics effects that may be playing on the device. | |
| /// </remarks> | |
| void ResetHaptics(); | |
| } | |
| } | |