using System; using UnityEngine.InputSystem.LowLevel; using UnityEngine.InputSystem.Utilities; namespace UnityEngine.InputSystem { /// /// Indicates what type of change related to an input device occurred. /// /// /// Use to receive notifications about changes /// to the input device setup in the system. /// /// /// /// InputSystem.onDeviceChange += /// (device, change) => /// { /// switch (change) /// { /// case InputDeviceChange.Added: /// Debug.Log($"Device {device} was added"); /// break; /// case InputDeviceChange.Removed: /// Debug.Log($"Device {device} was removed"); /// break; /// } /// }; /// /// /// public enum InputDeviceChange { /// /// A new device was added to the system. This is triggered after the device /// has already been added, i.e. it already appears on . /// /// See also and . /// Added, /// /// An existing device was removed from the system. This is triggered after the /// device has already been removed, i.e. it already has been cleared from . /// /// Other than when a device is removed programmatically, this happens when a device /// is unplugged from the system. Subsequent to the notification, the system will remove /// the instance from its list and remove the device's /// recorded input state. /// /// See also . /// Removed, /// /// A device reported by the was but was /// retained by the system as disconnected. /// /// See also . /// Disconnected, /// /// A device that was previously retained as has been re-discovered /// and has been to the system again. /// /// See also . /// Reconnected, /// /// An existing device was re-enabled after having been . /// /// See also and . /// Enabled, /// /// An existing device was disabled. /// /// See also and . /// Disabled, /// /// The usages on a device have changed. /// /// This may signal, for example, that what was the right hand XR controller before /// is now the left hand controller. /// /// See also and /// . /// UsageChanged, /// /// The configuration of a device has changed. /// /// This may signal, for example, that the layout used by the keyboard has changed or /// that, on a console, a gamepad has changed which player ID(s) it is assigned to. /// /// See also and . /// ConfigurationChanged, /// /// Device is being "soft" reset but in a way that excludes /// controls such as mouse positions. This can happen during application focus changes /// (see ) or when /// is called explicitly. /// /// This notification is sent before the actual reset happens. /// SoftReset, /// /// Device is being "hard" reset, i.e. every control is reset to its default value. This happens only /// when explicitly forced through . /// /// This notification is sent before the actual reset happens. /// HardReset, [Obsolete("Destroyed enum has been deprecated.")] Destroyed, } }