InputSystem Changelog

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

1.0.0-preview.7 #

17 Apr 2020

Fixed
Changed

Fixed

  • VirtualMouseInput not moving the software cursor when set to HardwareCursorIsAvailable but not having a hardware cursor ()
  • Can now override built-in Android gamepad layouts. Previously, the input system would always choose its default defaults even after registering more specific layouts using InputSystem.RegisterLayout.
  • InputControlPath.TryGetControlLayout no longer throws NotImplementedException for <Mouse>/scroll/x and similar paths where the layout is modifying a control it inherited from its base layout (thread).
  • Fixed compilation errors when disabling built-in VR and XR modules. (case 1214248).
  • Fixed compilation errors when disabling built-in Physics and Physics2D modules. (case 1191392).
  • No longer throws NotImplementedException when matching against a field of InputDeviceDescription.capabilities when the value of the field used scientific notation.
  • No longer incorrectly matches fields of InputDeviceDescription.capabilities by prefix only (i.e. previously it would find the field "foo" when actually looking for "foobar").
  • Input device debugger window slowing editor to a crawl when opened on PS4 DualShock controller.
  • InputUser.UnpairDevices() corrupting user device list.

Actions

  • Controls are now re-resolved after adding or removing bindings from actions (case 1218544).
  • Can now have spaces and special characters in action names when using PlayerInput with the SendMessages or BroadcastMessages behavior. Previously, an incorrect method name was generated (fix contributed by BHSPitMonkey in #1022; case 1214519).
  • Adding a new action now sets expectedControlType to Button as expected (case 1221015).
  • Player joins with PlayerInputManager from button presses no longer fail if there are multiple devices of the same type present and the join was not on the first gamepad (case 226920).
  • PlayerInputEditor no longer leads to the player's InputActionAsset mistakenly getting replaced with a clone when the inspector is open on a PlayerInput component (case 1228636).
  • The control picker in the .inputactions editor will no longer incorrectly filter out layouts such as Xbox One Gamepad (on XB1) when using them in control schemes. Also, it will no longer filter out controls from base layouts (such as Gamepad) (case 1219415).
  • RebindOperations will no longer pick controls right away that are already actuated above the magnitude threshold when the operation starts. Instead, these controls will have to change their actuation from their initial level such that they cross the magnitude threshold configured in the operation (case 1215784).
  • Newly added actions and action maps are now scrolled to when there are more items than fit into view. Previously newly added item was appended but outside of the visible area.
  • Actions and bindings in the .inputactions editor are no longer force-expanded on every domain reload and whenever a new action or binding is added.
  • The importer for .inputactions assets will now check out from version control the generated .cs file when overwriting it – which only happens if the contents differ (case 1222972).
  • The editor for .inputactions assets will now check out from version control the asset before saving it.
  • Drag-reordering action maps no longer throws "Should have drop target" asserts in the console (case 1229146).
  • Drag-reordering actions no longer changes action IDs of some of the existing actions (case 1231233).
  • References to InputActionReference objects created by the importer for .inputactions files are no longer broken when the action referenced by the object is renamed (case 1229145).
    • NOTE: This fix does not apply to existing InputActionReference instances. The problem was inherent in the internal file IDs generated for actions – which were affected by action and map names. Thus, changing the name of an action or map would change the resulting file ID of the InputActionReference.
      However, changing file IDs will break any existing reference to the object. Thus we had to preserve the existing InputActionReference objects under their original file ID. We hide them in the Project Browser, however. The ones that are visible now have the new, fixed file IDs.
      To switch existing InputActionReference properties to the new file IDs, simply replace them with the newly created InputActionReference.

Changed

  • InputDevice.all has been deprecated due to the confusion it creates with other getters like Gamepad.all. Use InputSystem.devices instead (case 1231216).
    • In the same vein, we added a new Joystick.all getter that works the same as Gamepad.all.
  • Changed UI Package to be optional dependency. Removing the package will now disable all UI relevant Input code.