Noisy controls
Noisy controls are those that can change value without any actual or intentional user interaction required. For example, they gyroscope sensor in a cellphone provides noisy input data because even if the cellphone is at rest, there are usually fluctuations in the control's value readings. Another example are orientation readings from a head-mounted display.
Some built-in control types are marked as noisy. You can query this using the InputControl.noisy property, or by inspecting the control types in the Input Debugger window.
If a control is marked as noisy:
The control is not considered for interactive rebinding.
InputActionRebindingExceptions.RebindingOperationignores the control by default (you can bypass this usingWithoutIgnoringNoisyControls).The Input System performs additional event filtering to filter out noise, then calls
InputDevice.MakeCurrentif any non-noise values cause the control to change state. If an input event for a Device contains no state change on a control that is not marked noisy, then the Device will not be made current based on the event. This avoids, for example, a plugged in PS4 controller constantly making itself the current gamepad (Gamepad.current) due to its sensors constantly feeding data into the system.When the application loses focus and Devices are reset as a result, the state of noisy control will be preserved as is. This ensures that sensor readings will remain at their last value rather than being reset to default values.
Note
To query whether a control is noisy, use the InputControl.noisy property.
If any control on a device is noisy, the device itself is flagged as noisy.
In addition to the input state and the default state that the Input System keeps for all Devices currently present, it also maintains a noise mask in which only bits for state that is not noise are set. You can use this to efficiently mask out noise in input.
Noise masks
Parallel to the input state and the default state that the Input System keeps for all devices currently present, it also maintains a noise mask in which only bits for state that is not noise are set. This can be used to very efficiently mask out noise in input.