1.5.0 #
Added
Fixed
Actions
Changed
Added
- Added support for reading Tracking State in TrackedPoseDriver to constrain whether the input pose is applied to the Transform. This should be used when the device supports valid flags for the position and rotation values, which is the case for XR poses.
- Added
InputSettings.shortcutKeysConsumeInput
. This allows programmatic access to opt-in to the enhanced shortcut key behaviour (case ISXB-254)). - Significantly optimized cost of
ReadValue
/ReadUnprocessedValueFromState
/WriteValueIntoState
for some control types. Optimization is opt-in for now, please callInputSystem.settings.SetInternalFeatureFlag("USE_OPTIMIZED_CONTROLS", true);
in your project to enable it. You can observe which controls are optimized by looking at new optimized column in device debugger. You will need to call a newInputControl.ApplyParameterChanges()
method if the code is changingAxisControl
fields after initial setup is done. - Added the ability to change the origin positioning and movement behaviour of the OnScreenStick (
OnScreenStick.cs
) via the newbehaviour
property. This currently supports three modes of operation, two of which are new in addition to the previous behaviour. Based on the user contribution from eblabs in #658. - Significantly optimized cost of
InputAction.ReadValue
andInputControl.ReadValue
calls by introducing caching behaviour to input controls. Input controls now keep track of whether their underlying state has been changed and only read the value from the underlying state and apply processors when absolutely necessary. Optimization is opt-in for now, please callInputSystem.settings.SetInternalFeatureFlag("USE_READ_VALUE_CACHING", true);
in your project to enable it. If there are issues try enablingInputSystem.settings.SetInternalFeatureFlag("PARANOID_READ_VALUE_CACHING_CHECKS", true);
and check in the console if there are any errors regarding caching. - Added a note in the supported devices page about DualSense support for Android devices.
- Exposed
displayIndex
property forPointer
,Touchscreen
,TouchControl
,TouchState
,Mouse
,MouseState
which enables look up of the logical screen associated with a pointer event via (display documentation)[https://docs.unity3d.com/ScriptReference/Display.html]
Fixed
- Fixed composite bindings incorrectly getting a control scheme assigned when pasting into input asset editor with a control scheme selected.
- Fixed an issue on PS5 where device disconnected events that happen while the app is in the background are missed causing orphaned devices to hang around forever and exceptions when the same device is added again (case UUM-7842).
- Fixed Switch Pro, DualShock 4, DualSense gamepads becoming current on PC/macOS when no controls are changing (case ISXB-223)).
- Fixed an issue that made OnScreenStick unusable when used in conjunction with PlayerInput in Auto-Switch devices mode, or with any code that changes user/device pairing on unsued device activity being detected (case ISXB-48).
- Fixed issue where input events were being suppressed during interactive action rebinding even when when their controls were excluded (case ISXB-367).
- Removed unneeded check that could trigger a NotImplementedException when binding to a Usage (e.g. Submit) (case ISXB-373).
- Display a warning instead of throwing a NotImplementedException when loading binding overrides from json when some of the entries have become outdated (case ISXB-375).
Actions
- Extended input action code generator (
InputActionCodeGenerator.cs
) to support optional registration and unregistration of callbacks for multiple callback instances viaAddCallbacks(...)
andRemoveCallbacks(...)
part of the generated code. Contribution by Ramobo in #889.
Changed
- Changed define requirements of
Unity.InputSystem.TestFramework
, so that it can be used by other packages without setting thecom.unity.inputsystem
package to be testable in the project manifest.