com.unity.inputsystem 1.3.0

com.unity.inputsystem

Notes: processedReleased January 5, 2022

Browse versions

PreviousNext

Unity Compatibility

Minimum Unity: 2019.4

Package Dependencies

  • com.unity.modules.uielements (1.0.0)

📈 Improvements

  • The artificial `ctrl`, `shift`, and `alt` controls (which combine the left and right controls into one) on the keyboard can now be written to and no longer throw `NotSupportedException` when trying to do so (case 1340793).
  • All devices are now re-synced/reset in next update after entering play mode, this is needed to read current state of devices before any intentional input is provided (case 1231907).
  • Replaced `UnityLinkerBuildPipelineData.inputDirectory` with hardcoded `Temp` folder because `inputDirectory` is deprecated.
  • Deprecated `InputSettings.filterNoiseOnCurrent`. Now noise filtering is always enabled. Device only will become `.current` if any non-noise control have changed state.
  • A device reset (such as when focus is lost) on `Touchscreen` will now result in all ongoing touches getting cancelled instead of all touches being simply reset to default state.
  • Calling `InputTestFixture.Press`, `InputTestFixture.Set`, etc. from within a `[UnityTest]` will no longer immediately process input. Instead, input will be processed like it normally would as part of the Unity player loop.

🔧 Bug Fixes

  • Fixed writing values into the half-axis controls of sticks (such as `Gamepad.leftStick.left`) producing incorrect values on the stick (case 1336240).
  • Fixed setting size of event trace in input debugger always growing back to largest size set before.
  • Fixed successive clicks not getting triggered with `TouchSimulation` on when not moving the mouse in-between clicks (case 1330014).
  • Fixed `InputSystemUIInputModule` stopping to listen for input when swapping `InputActionAsset` instances while input was disabled (case 1371332).
  • Fixed `InputSystemUIInputModule` showing incorrect bindings after pressing the 'Fix UI Input Module' button in PlayerInput component(case 1319968).
  • Fixed an issue where UI button clicks could be ignored by `InputSystemUIInputModule` if modifying on-screen devices from Update() callbacks (case 1365070).
  • Fixed an issue with `InputSystemUIInputModule` that would cause UI to stop responding during play mode after changing a script file while Recompile and Continue mode is active, or by forcing a script recompile using `RequestScriptCompilation`(case 1324215).
  • Fixed `InputSystemUIInputModule` inspector showing all action bindings as "None" when assigned a runtime created actions asset (case 1304943).
  • Fixed a problem with UI Toolkit buttons remaining active when multiple fingers are used on a touchscreen, using `InputSystemUIInputModule` with pointerBehavior set to `UIPointerBehavior.SingleUnifiedPointer`. UI Toolkit will now always receive the same pointerId when that option is in use, regardless of the hardware component that produced the pointer event. (case 1369081).
  • Fixed a problem with `InputUser` where devices would be removed and not added again after layout overrides preventing certain devices, e.g. gamepads to not work correctly when associated with action map bindings tied to `PlayerInput` (case 1347320).
  • Fixed DualSense on iOS not inheriting from `DualShockGamepad` (case 1378308).
  • Fixed a device becoming `.current` (e.g. `Gamepad.current`, etc) when sending a new state event that contains no control changes (case 1377952).
  • Fixed calling `IsPressed` on an entire device returning `true` (case 1374024).
  • Fixed HIDs having blackslashes in their vendor or product names leading to binding paths generated by interactive rebinding that failed to resolve to controls and thus lead to no input being received (case 1335465).
  • Fixed `InputSystem.RegisterLayoutOverride` resulting in the layout that overrides are being applied to losing the connection to its base layout (case 1377719).
  • Fixed `Touch.activeTouches` still registering touches after the app loses focus (case 1364017).
  • Fixed `MultiplayerEventSystem` not preventing keyboard and gamepad/joystick navigation from one player's UI moving to another player's UI (case 1306361).
  • - This fix relies on a `CanvasGroup` being injected into each `playerRoot` and the `interactable` property of the group being toggled back and forth depending on which part of the UI is being updated.
  • Fixed `InputTestFixture` incorrectly running input updates out of sync with the player loop (case 1341740).
  • - This had effects such as `InputAction.WasPressedThisFrame()` returning false expectedly.
  • Fixed broken code example for state structs in `Devices.md` documentation (fix contributed by jeffreylanters).
  • Fixed `TrackedDeviceRaycaster` not picking closest hit in scene (fix originally contributed by alexboost222).
  • #### Actions
  • Fixed opening a new project (or one that needs a full reimport) leading to several exceptions in the console if the most recently opened project was closed with a `.inputactions` editor open (case 1313185).
  • Fixed incorrect indentation of input actions in the inspector (case 1285546).
  • Fixed an issue where serialized `InputAction` properties would have display name "Input Action" in the Inspector window instead of their given name. (case 1367240).
  • Fixed an issue where `InputAction.Enable` would not reuse memory allocated prior and thus lead to memory leaks (case 1367442).
  • Fixed interactions such as `Press` not getting processed correctly when having multiple of them on different bindings of the same action and receiving simultaneous input on all of them (case 1364667).
  • - If, for example, you bind the A and S key on the same action, put a `Press` interaction on both, and then press both keys, interactions would get missed or got stuck.
  • Fixed `InputAction.IsPressed`/`WasPressed`/`WasReleased` returning incorrect results when binding multiple buttons on the same action and pressing/releasing them simultaneously.
  • Improved performance of looking up actions by name.
  • Fixed `InputAction.controls` exhibiting bad performance when there were no controls bound to an action (case 1347829).
  • Fixed interactions involving timeouts (such as `HoldInteraction`) performing erroneous delayed triggers on actions when input is composed of multiple controls (1251231).
  • - For example, if you bind `Shift+B` using a `OneModifierComposite` and put a `HoldInteraction` on the binding, then depending on the order in which the keys are pressed, you would sometimes see the action spuriously getting triggered when in fact no input was received.
  • Fixed control schemes of bindings not getting updates when being pasted from one `.inputactions` asset into another (case 1276106).
  • - For example, if you copied a binding from an asset that had a "Gamepad" control scheme into an asset that had none, the resulting binding would be unusable.
  • - All associations with control schemes that do not exist in the target asset are now removed from bindings upon pasting.
  • Fixed `InputActionSetupExtensions.AddCompositeBinding` not setting name of composite.