InputSystem Changelog

This changelog showcases the ability to render changelogs in the "keep a changelog" format

Unreleased #

Fixed
Changed

Fixed

  • Fixed an issue causing the Action context menu to not show on right click when right clicking an action in the Input Action Editor ISXB-1134.
  • Reverted changes from 0ddd534d8 (ISXB-746) which introduced a regression ISXB-1127.
  • Fixed ArgumentNullException: Value cannot be null. during the migration of Project-wide Input Actions from InputManager.asset to InputSystem_Actions.inputactions asset which lead do the lost of the configuration ISXB-1105.
  • Fixed pointerId staying the same when simultaneously releasing and then pressing in the same frame on mobile using touch. ISXB-1006.
  • Fixed ISubmitHandler.OnSubmit event processing when operating in Manual Update mode (ISXB-1141).
  • Fixed Rename mode is not entered and name is autocompleted to default when creating a new Action Map on 2022.3. ISXB-1151.
  • Fixed unexpected control scheme switch when using OnScreenControl and pointer based schemes which registed "Cancel" event on every frame.ISXB-656.
  • Fixed an issue with The "Add Control Scheme..." popup window so that it now persists until any changes are explicitly Saved or Cancelled case ISXB-1131.
  • Fixed missing documentation for source generated Input Action Assets. This is now generated as part of the source code generation step when "Generate C# Class" is checked in the importer inspector settings.
  • Fixed pasting into an empty map list raising an exception. ISXB-1150
  • Fixed pasting bindings into empty Input Action asset. ISXB-1180

Changed

  • Added back the InputManager to InputSystem project-wide asset migration code with performance improvement (ISX-2086).
  • Changed OnScreenControl to automaticaly switch, in Single Player with autoswitch enabled, to the target device control scheme when the first component is enabled to prevent bad interactions when it start.

1.11.2 #

16 Oct 2024

Fixed
Added
Changed

Fixed

  • Fixed touch pointers being released twice causing an index out of bounds error. ISXB-687
  • Fixed NullReferenceException from disconnecting and reconnecting a GXDKGamepad.
  • Fixed wrong mapping of Xbox Series S|X and Xbox One wireless controllers "View" button on macOS.ISXB-385
  • Fixed "AnalyticsResult" errors on consoles [ISXB-1107]
  • Fixed wrong Display Index value for touchscreen events.ISXB-1101
  • Fixed event handling when using Fixed Update processing where WasPressedThisFrame could appear to true for consecutive frames ISXB-1006
  • Removed a redundant warning when using fallback code to parse a HID descriptor. (UUM-71260)

Added

  • Added the display of the device flag CanRunInBackground in device debug view.
  • Added analytics for programmatic InputAction setup via InputActionSetupExtensions when exiting play-mode.

Changed

  • Removed the InputManager to InputSystem project-wide asset migration code for performance improvement (ISX-2086)

1.11.1 #

26 Sep 2024

Fixed
Changed

Fixed

  • Fixed Multiple interactions could breaks on Composite Binding. ISXB-619
  • Fixed memory leak when the OnScreenStick component was destroyed ISXB-1070. Contribution by LukeUnityDev.
  • Fixed Action Maps contextual menu in Action Editor UI that occasionally displays unrelated items.
  • Fixed "MissingReferenceException" errors when closing an in-game dropdown field ISXB-1081.
  • Fixed potential crash on Mac when using stale references to deleted InputDevice objects ISXB-606.
  • Fixed conditional compilation for non-editor analytics on platforms not enabling analytics.
  • Fixed simulated touch input not working with PlayerInput component ISXB-483.

Changed

  • Renamed editor Resources directories to PackageResources to fix package validation warnings.
  • Changed representation of GamepadButton enum values in Inspector to display aliased enum values as a single item to avoid confusion around selection and aliased value display when multiple enum items map to the same numerical value. ISXB-543
  • PlayerInput component now warns if the system cannot find matching control scheme, which can occur if all control schemes already paired (e.g. to other game objects with PlayerInput components) ISXB-1020

1.11.0 #

10 Sep 2024

Fixed
Changed
Added

Fixed

  • Fixed memory allocation on every frame when using UIDocument without EventSystem. ISXB-953
  • Fixed Action Maps name edition which could be inconsistent in Input Action Editor UI.
  • Fixed InputDeviceTester sample only visualizing a given touch contact once. ISXB-1017
  • Fixed an update loop in the asset editor that occurs when selecting an Action Map that has no Actions.
  • Fixed Package compilation when Unity Analytics module is not enabled on 2022.3. ISXB-996
  • Fixed 'OnDrop' event not called when 'IPointerDownHandler' is also listened. ISXB-1014
  • Fixed InputSystemUIInputModule calling pointer events on parent objects even when the "Send Pointer Hover To Parent" is off. ISXB-586
  • Improved performance of disconnected device activation (ISX-1450)
  • Fixed DualSense controllers being recognized as DualShock4 (ISX-1411)

Changed

  • Use ProfilerMarker instead of Profiler.BeginSample and Profiler.EndSample when appropriate to enable recording of profiling data.

Added

  • Added Hinge Angle sensor support for foldable devices.
  • Added InputDeviceMatcher.WithManufacturerContains(string noRegexMatch) API to improve DualShockSupport.Initialize performance (ISX-1411)
  • Added tests for Input Action Editor UI for managing action maps (List, create, rename, delete) (ISX-2087)
  • Added automatic loading of custom extensions of InputProcessor, InputInteraction and InputBindingComposite [ISXB-856]](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-856).
  • Added an IME Input sample scene.

1.10.0 #

24 Jul 2024

Fixed
Added

Fixed

  • Fixed default scroll speed in uGUI being slower than before. ISXB-766
  • Fixed selection state preserving after a save operation. ISXB-966
  • Fixed an issue when multiple interactions drive an action and perform during the cancelation of the current active interaction ISXB-310.
  • Fixed an issue when generating C# class of Input Actions that contain an action map named Debug ISXB-851.
  • Fixed ArgumentNullException thrown when accessing Action's bindings after changing Composite part. ISXB-494.

Added

  • Added InputSystemUIInputModule.scrollDeltaPerTick property, a customizable multiplicative factor applied to the scroll wheel speed before it is sent to UI components. Note that this has no effect on UI Toolkit content, only uGUI.

1.9.0 #

15 Jul 2024

Changed
Fixed
Added

Changed

  • Added warning messages to both OnScreenStick and OnScreenButton Inspector editors that would display a warning message in case on-screen control components are added to a GameObject not part of a valid UI hierarchy.
  • Changed behavior for internal feature flag relating to Windows Gaming Input to be ignored on non-supported platforms.
  • Changed DualSenseHIDInputReport from internal to public visibility
  • Added Input Setting option allowing to keep platform-specific scroll wheel input values instead of automatically converting them to a normalized range.

Fixed

  • Avoid potential crashes from NullReferenceException in FireStateChangeNotifications.
  • Fixed cases where wasPressedThisFrame would not return true if a press and release happened within the same frame before being queried (and vice versa for wasReleasedThisFrame).
  • Fixed an issue where a composite binding would not be consecutively triggered after ResetDevice() has been called from the associated action handler ISXB-746.
  • Fixed resource designation for "d_InputControl" icon to address CI failure.
  • Fixed an issue where a composite binding would not be consecutively triggered after disabling actions while there are action modifiers in progress ISXB-505.
  • Fixed prefabs and missing default control scheme used by PlayerInput component are now correctly shown in the inspector ISXB-818.
  • Fixed error thrown when Cancelling Control Scheme creation in Input Actions Editor.
  • Fixed Scheme Name in Control Scheme editor menu that gets reset when editing devices ISXB-763.
  • Fixed an issue where InputActionAsset.FindAction(string, bool) would throw System.NullReferenceException instead of returning null if searching for a non-existent action with an explicit action path and using throwIfNotFound: false, e.g. searching for "Map/Action" when InputActionMap "Map" exists but no InputAction named "Action" exists within that map ISXB-895.
  • Fixed scroll speed being slower when using InputSystemUIInputModule instead of StandaloneInputModule. (https://jira.unity3d.com/browse/ISXB-771)
  • Fixed an issue where adding a OnScreenButton or OnScreenStick to a regular GameObject would lead to exception in editor.
  • Fixed an issue where adding a OnScreenStick to a regular GameObject and entering play-mode would lead to exceptions being generated.
  • Fixed InputActionReference issues when domain reloads are disabled ISXB-601, ISXB-718, ISXB-900
  • Fixed a performance issue with many objects using multiple action maps ISXB-573.
  • Fixed an variable scope shadowing issue causing compilation to fail on Unity 2019 LTS.
  • Fixed an issue where changing InputSettings instance would not affect associated feature flags.
  • Submit and Cancel UI actions will now respect configured interactions. ISXB-841.
  • Fixed the UI generation of enum fields when editing interactions of action properties. The new selected value was lost when saving.
  • Fixed the UI generation of custom interactions of action properties when it rely on OnGUI callback. ISXB-886.
  • Fixed deletion of last composite part raising an exception. ISXB-804
  • Fixed an issue related to Visualizers sample where exceptions would be thrown by InputActionVisualizer and InputControlVisualizer when entering play-mode if added as components to a new GameObject.
  • Fixed an issue with InputAction Asset editor where invalid ControlScheme names with only spaces could be entered. ISXB-547.
  • Fixed deletion of last composite part raising an exception. ISXB-804

Added

  • Added additional device information when logging the error due to exceeding the maximum number of events processed set by InputSystem.settings.maxEventsBytesPerUpdate. This additional information is available in development builds only.
  • Expanded editor and build insight analytics to cover ``.inputactionsasset editor usage,InputSettings` and common component configurations.
  • Added Input Setting option allowing to keep platform-specific scroll wheel input values instead of automatically converting them to a normalized range.

1.8.2 #

29 Apr 2024

Added
Fixed
Changed

Added

  • Documentation to clarify effects of ordering of interactions when a single action has multiple interactions ISXB-221.
  • Additional tests for UI Input default actions (Navigate, Submit, Scroll etc.)
  • Documented behaviour of InputSystemUIInputModule automatically enabling the UI action map. ISXB-621

Fixed

  • Fixed an issue where UI interactions would not function without setting up a project-wide actions asset in Project Settings. Default UI actions are now created on the fly, if no asset for project-wide actions has been set. ISXB-811.
  • Physical keyboards used on Android/ChromeOS could have keys "stuck" reporting as pressed after a long press and release ISXB-475.
  • NullReferenceException thrown when right-clicking an empty Action Map list in Input Actions Editor windows ISXB-833.
  • Fixed an issue where System.ObjectDisposedException would be thrown when deleting the last ActionMap item in the Input Actions Asset editor.
  • Fixed DualSense Edge's vibration and light bar not working on Windows
  • Fixed Project-wide Actions asset failing to reload properly after deleting project's Library folder.
  • Fixed an issue where System.InvalidOperationException is thrown when entering PlayMode after deleting an ActionMap from Project-wide actions and later resetting it.
  • Fixed OnPointerClick events not propagating to child objects unless the child also handled OnPointerDown events ISXB-857.
  • Fixed Input Actions Editor window resource leak that could result in unexpected exceptions ISXB-865.
  • Fixed an issue where UI integration would throw exceptions when Project-wide Input Actions asset did not contain the implicitly required UI action map or was missing any of the required actions. Additionally this fix now also generates warnings in the console for any divergence from expected action configuration or lack of bindings in edit-mode.
  • Fixed a minor issue when importing InputAction assets that could result in unexpected logging during internal package validation checks.

Changed

  • For Unity 6.0 and above, when an EventSystem GameObject is created in the Editor it will have the InputSystemUIInputModule by default if the Input System package is installed and enabled.

1.8.1 #

14 Mar 2024

Fixed

Fixed

  • NullReferenceException thrown when editing a binding path in InputActionAsset windows.

1.8.0 #

12 Mar 2024

Changed
Added
Fixed

Changed

  • From 2023.2 forward: UI toolkit now uses the "UI" action map of project-wide actions as their default input actions. Previously, the actions were hardcoded and were based on DefaultInputActions asset which didn't allow user changes. Also, removing bindings or renaming the 'UI' action map of project wide actions will break UI input for UI toolkit.
  • Changed the 'Max player count reached' error to a warning instead.
  • Removed "Input Actions" title from UI-Toolkit Input Action Editor when used in a window and not embedded in Project Settings.
  • Moved project wide input action storage over to an Asset to avoid issues with multiple assets in a single project settings file.
  • Migrate any project-wide input actions found in the InputManager.asset file to a new InputSystem_Actions.inputactions asset file.
  • InputSystem.actions may now only be assigned in edit-mode. Any attempt to assign InputSystem.actions during play-mode will generate an exception.
  • InputSystem.actions may now only be assigned a persisted InputActionAsset instance since in-memory objects can anyway not be included in a player build. This now generates an ArgumentException when attempting to assign a non-persisted object.
  • Project Settings embedded Input Action Editor will now disallow selecting the Project-wide Actions asset during play-mode. The option is only available in edit-mode.
  • The "Assign as the Project-wide Input Actions" option visible in the Inspector when selecting an .inputactions asset that is not the current Project-wide Input Actions Asset is now disabled in play-mode.

Added

  • Added new methods and properties to InputAction:
  • Added Copy, Paste and Cut support for Action Maps, Actions and Bindings via context menu and key command shortcuts.
  • Added Dual Sense Edge controller to be mapped to the same layout as the Dual Sense controller
  • Added drag and drop support in the Input Action Asset Editor for Action Maps, Actions and Bindings.
  • UI Toolkit input action editor now supports showing the derived bindings.
  • Device filtering support for control schemes in the UI-Toolkit Input Asset Editor.
  • Added right-click (context) menu support for empty areas below the Action Maps/Actions lists in the Project Settings Input Action Editor and Asset Input Action Editor.
  • Added text to show which action map asset was used to create each action in the Input Debug window.

Fixed

  • Fixed syntax of code examples in API documentation for AxisComposite.
  • Fixed missing confirmation popup when deleting a control scheme.
  • Fixed support for menu bar/customisable keyboard shortcuts used when interacting with Actions and Action Maps.
  • Fixed add bindings button to support left button click.
  • Fixed icon for adding bindings and composites button.
  • Fixed Documentation~/filter.yml GlobalNamespace rule removing all API documentation.
  • Fixed Destroy may not be called from edit mode error ISXB-695
  • Fixed possible exceptions thrown when deleting and adding Action Maps.
  • Fixed selection not changing when right-clicking an Action Map or Action in the Project Settings Input Actions Editor.
  • Fixed right-click context menus throwing errors when dealing with multiple Input Actions Editor windows.
  • Fixed potential race condition on access to GCHandle in DefferedResolutionOfBindings and halved number of calls to GCHandle resolution ISXB-726
  • Fixed issue where composite part dropdown manipulates binding path and leaves composite part field unchanged.
  • Fixed lingering highlight effect on Save Asset button after clicking.
  • Fixed missing name in window title for Input Action assets.
  • Fixed showing action properties view when there were no actions.
  • Fixed "Listen" functionality for selecting an input sometimes expecting the wrong input type.
  • Fixed console errors that can be produced when opening input package settings from the Inspector.
  • Fixed InputManager.asset file growing in size on each Reset call.
  • Fixed Opening InputDebugger throws 'Action map must have state at this point' error.
  • Fixed Cut/Paste behaviour to match Editor - Cut items will now be cleared from clipboard after pasting.
  • Improved window layout to avoid elements being hidden (both the Input Actions in Project Settings, and standalone Input Actions Editor windows).
  • Fixed InputAction asset appearing dirty after rename ISXB-749.
  • Fixed Error logged when InputActionsEditor window opened without a valid asset.
  • Fixed ArgumentNullExceptions thrown when deleting items quickly in the UITK Editor.
  • Fixed Project Settings header title styling for Input Actions editor.
  • Fixed Input Actions Editor losing reference to current ControlScheme upon entering Play Mode ISXB-770.
  • Fixed Save shortcut (ctrl/cmd + S by default) not saving changes in Input Actions Editor windows. ISXB-659.
  • Fixed headers in InputActionsEditor windows becoming squashed when there is a large number of Action Maps/Actions.
  • Fixed duplication of project wide input actions when loading/unloading scenes.
  • Fixed an issue where UI Toolkit based editor would not close itself if the associated asset would be deleted (To mimic IMGUI Input Action Editor behavior).
  • Fixed a regression in IMGUI Input Action Editor where editor would auto-save on focus lost even when the auto-save toggle was disabled.
  • Fixed an issue where UI Toolkit based editor would not properly track tentative changes associated with a moved asset file.
  • Fixed an issue where selection state of UI Toolkit editor state would not be preserved when associated with a new serialized copy of the asset.
  • Fixed an issue where any exceptions throw from within UI Toolkit event queue would only log the error message and not the full exception stack trace, making debugging more difficult.
  • Fixed an issue where UI Toolkit Input Actions Editor wouldn't provide a correct modification state when coming back from domain reload.
  • Fixed an issue in the Input Actions Editor window where entries being cut would be deleted instantly and not after being pasted.
  • Fixed an issue where preloaded InputActionAsset objects added by a Unity developer could accidentally be selected as the project-wide actions asset instead of the configured asset in built players.
  • Fixed a compile-time warning: warning CS0109: The member 'UnityRemoteTestScript.camera' does not hide an accessible member. The new keyword is not required. showing up in the Console window when building a player including the Input System Unity Remote sample.
  • Fixed an issue where the InputActionAsset editor window would remove the unsaved changes asterisk when cancelling the window. ISXB-797.
  • Fixed an issue in the Input Actions Editor window where deleting items unfolded other actions or the selection switched unintended.
  • Fixed Composite types missing in context menu when "Any" ControlType selected. ISXB-769.
  • Fixed 3D Vector and 1D Axis binding dropdown usage in Input Actions Editor throwing NotImplementedExceptions.
  • Fixed several missing tooltips from the Action/Binding Properties pane in Input Actions Editor.
  • Fixed an issue in the InputActionAsset Editor where ControlType wasn't updated when ActionType changed.
  • Fixed an issue in the InputActionAsset Editor where Canceling ControlScheme changes didn't reset the values in the UI.
  • Fixed an issue where newly created action map names were not editable.
  • Fixed an issue where having unsaved changes in InputActionsEditorWindow would be discarded when entering play-mode (or triggering domain reload in general).
  • Fixed an issue where a InputActionsEditorWindow would not find an existing open editor window if the editor was open during a domain reload and then the asset was opened from the Project Explorer.
  • Fixed a visual glitch in the InputActionAsset Editor when scrolling the Actions list with a rename in progress. ISXB-748
  • Fixed ProjectWideActions template so Previous/Next Actions are Button instead of Axis.
  • Fixed an issue in the Input Action Editor window where entries being cut would be deleted instantly and not after being pasted.
  • Fixed an issue in the Input Action Editor window where deleting items unfolded other actions or the selection switched unintended.
  • Fixed an issue where InputActionAsset validation where not triggered for Project-wide input actions when the project-wide asset was edited in a regular windowed Input Action Asset editor window.
  • Fixed incorrect documentation in InputSystem.actions and InputSystem.onActionsChanged property API contract.
  • Fixed an issue where InputSystem.actions could be incorrectly evaluated if the associated asset was deleted.

1.8.0-pre.2 #

09 Nov 2023

Changed
Added
Fixed

Changed

  • Removed icons from action map list as these were always the same and the icon was placeholder
  • Input asset editor now switched to use UI Toolkit which matches the project wide input actions editor interface.
  • Changed InputActionProperty property drawer to be more compact. Use the More menu () button to open a dropdown menu and select between Use Reference and Use Action.
  • Static analysis warnings regarding flag enums have been suppressed in order to avoid compile-time warnings or errors.
  • Action Map and Action Tree views of the UI Toolkit based Input Action Editor now prevents deselection in both views when Escape key is pressed.
  • Input Action Asset editors Auto-save feature has been modified to trigger on focus-lost when activated instead of triggering on every modification to the asset in order to reduce impact of processing required to handle modified assets.
  • Project-wide input actions template extension changed from .inputactions to .json. This avoids showing template actions in the action's selector UI that are not intended to be used.
  • Re-enabled some UI tests that were disabled on iOS.
  • Reorganized package Project Settings so that "Input System Package" setting node contains "Input Actions" and "Settings" becomes a child node when Project-wide Actions are available. For Unity versions where Project-wide Actions are not available, the settings structure remains unchanged.
  • Make Project-wide Actions the default actions for Player Input.

Added

  • Support for Game rotation vector sensor on Android.
  • Duplicate Input Action Items in the new Input Action Asset Editor with Ctrl+D (Windows) or Cmd+D (Mac).
  • Selection of InputActionReferences from project-wide actions on fields that are of type InputActionReference. Uses a new advanced object picker that allows better searching and filtering of actions.
  • Reset project wide Input Settings to default via a new Kebab-menu in Input System Project Settings.

Fixed

  • Partially fixed case ISX-1357 (Investigate performance regressing over time). A sample showed that leaving an InputActionMap enabled could lead to an internal list of listeners growing. This leads to slow-down, so we now warn if we think this is happening.
  • UI fix for input fields in interactions: they are wider now and the width is fixed.
  • Fixed exiting empty input fields for actions, action maps and composites in the input action asset editor.
  • Fixed an issue where selecting an Action in the Input Action Asset Editor tree-view and then pressing ESC to unselect would throw an InvalidOperationException.
  • Fixed an issue where selecting an Action Map in the Input Action Asset Editor list and then pressing ESC to unselect would print an NullReferenceException to the Debug console.
  • Fixed case ISXB-251 (Action only calls started & performed callbacks when control type is set to Vector3Composite). EvaluateMagnitude wasn't overridden for Vector3Composite, also made some minor changes to Vector3Composite and Vector2Composite for consistency.
  • Fixed case ISXB-580 (UI Submit / Cancel not working with Switch Pro controller) by adding "Submit" & "Cancel" usages to the Switch Pro controller input controls.
  • Fixed an issue where undoing deletion of Action Maps did not restore Actions correctly.
  • Fixed case ISXB-628 (OnIMECompositionChange does not return an empty string on accept when using Microsoft IME) by clarifying expectations and intended usage for the IME composition change event.
  • Fixed issue where the expanded/collapsed state of items in the input action editor was not properly saved between rebuilds of the UI.
  • Fixed issue where The Profiler shows incorrect data and spams the console with "Missing Profiler.EndSample" errors when there is an Input System Component in Scene).
  • Fixed an issue where undoing duplications of action maps caused console errors.
  • Fix for BindingSyntax WithInteraction() which was incorrectly using processors.
  • Fix for UITK Input Action Editor binding 'Listen' button which wasn't working in the case for Control Type 'Any'.
  • Fixed issue of visual elements being null during editing project-wide actions in project settings which prompted console errors.
  • Fixed case ISX-1436 (UI TK Input Action Asset Editor - Error deleting Bindings with DeleteKey on Windows).
  • Fixed issue with UI Toolkit based Input Action Editor not restoring it's selected items after Domain Reload.
  • Fixed the GetHapticCapabilitiesCommand always failing to execute due to a mismatch in the size in bytes of the payload and the size expected by XR devices. Changed HapticCapabilities to include all properties returned by the XR input subsystem. This makes Input System match the functionality provided by the XR module's InputDevice.TryGetHapticCapabilities and HapticCapabilities.
  • Fixed issue where deleting a binding in the Input Action Editor would usually result in an unexpected item being selected next.