Skip to content

Releases: needle-mirror/com.unity.inputsystem

1.1.0-preview.1

20 Aug 18:03
Compare
Choose a tag to compare
1.1.0-preview.1 Pre-release
Pre-release

[1.1.0-preview.1] - 2020-08-20

The minimum version requirement for the Input System package has been moved up to 2019.4 LTS.

Changed

Actions

  • Auto-generated C# files now have <auto-generated> headers so they get ignored by Rider code analysis.
  • Auto-generated C# classes are now partial so that they can be manually extended.
  • Deleting a composite binding with action.ChangeBinding(0).Erase() now also erases all the bindings that are part of the composite.
  • Trigger binding resolution from within action callbacks (e.g. InputAction.performed) will now defer resolution until after the callback has completed.
    • This fixes crashes such as case 1242406 where disabling PlayerInput from within an action callback led to an action's state being released while the action was still in a callback.

Fixed

  • Fixed input history on Android mono build by alligning memory of history records
  • Fixed no input being processed when running a [UnityTest] over several frames. Before, this required calling InputSystem.Update manually.
  • Fixed clicking on help page button in Unity inspector for Input System components not going to relevant manual pages.
  • Fixed a bug that prevented DualShock controllers from working on tvOS. (case 1221223).
  • GravitySensor, LinearAccelerationSensor, and AttitudeSensor not being initialized on iOS (case 1251382).
  • Fixed compilation issues with XR and VR references when building to platforms that do not have complete XR and VR implementations.
  • Fixed possible NullReferenceExceptions on ARMs with controls that receive automatic memory offsets.
  • Fixed TouchControl.tapCount resetting to 0 when "Script Debugging" is enabled (case 1194636).
  • Fixed Touch.activeTouches not having a TouchPhase.Began entry for touches that moved in the same frame that they began in (case 1230656).
  • Fixed sequential taps causing touches to get stuck in Touch.activeTouches.
  • Improved performance of Touch.activeTouches (most notably, a lot of time was spent in endlessly repetitive safety checks).
  • Fixed EnhancedTouch APIs not indicating that they need to be enabled with EnhancedTouchSupport.Enable().
    • The APIs now throw InvalidOperationException when used without being enabled.
  • Fixed memory corruption in InputEventTrace.AllocateEvent (case 1262496)
    • Manifested itself, for example, as crashes when using InputActionTrace.SubscribeToAll.
  • AxisControls and Vector2Controls' X and Y subcontrols on XR devices now have a minimum range of -1 and a maximum range of 1. This means they can now properly respond to modifiers and interactions in the binding system.

Actions

  • Fixed drag&drop reordering actions while having one control scheme selected causing bindings from other control schemes to be lost (case 122800).
  • Fixed stack overflow in PlayerInput.SwitchCurrentActionMap when called from action callback (case 1232893).
  • Fixed control picker ending up empty when listing devices in "Supported Devices" (case 1254150).

Added

  • Device layouts can now be "precompiled" for speed. Keyboard, Mouse, and Touchscreen are now included as precompiled layouts greatly reducing instantiation time and GC heap cost for these devices. For Touchscreen, this results in a >20x speed-up for InputSystem.AddDevice<Touchscreen>().
  • Added Pose Control layout. The Pose Control is used on XR Devices and wraps tracking state, position, rotation, and velocity information.

Actions

  • Can now save binding overrides as JSON strings and restore them from such using the newly added SaveBindingOverridesAsJson and LoadBindingOverridesFromJson extension methods.
    void SaveUserRebinds(PlayerInput player)
    {
        var rebinds = player.actions.SaveBindingOverridesAsJson();
        PlayerPrefs.SetString("rebinds", rebinds);
    }
    
    void LoadUserRebinds(PlayerInput player)
    {
        var rebinds = PlayerPrefs.GetString("rebinds");
        player.actions.LoadBindingOverridesFromJson(rebinds);
    }

1.0.0

26 May 03:04
Compare
Choose a tag to compare

[1.0.0] - 2020-4-23

Fixed

  • Fixed compilation issues in TrackedDeviceRaycaster when disabling built-in XR module.

1.0.0-preview.7

26 May 03:04
Compare
Choose a tag to compare
1.0.0-preview.7 Pre-release
Pre-release

[1.0.0-preview.7] - 2020-04-17

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.

1.0.0-preview.6

26 May 03:04
Compare
Choose a tag to compare
1.0.0-preview.6 Pre-release
Pre-release

[1.0.0-preview.6] - 2020-03-06

Changed

  • InputSystemUIInputModule.trackedDeviceSelect has been removed. Use InputSystemUIInputModule.leftClick instead.
  • InputSystemUIInputModule.repeatDelay has been renamed to moveRepeatDelay and repeatRate has been renamed to moveRepeatRate.

Fixed

  • Fixed CS0109 warning being generated during player build due to use of new with the PlayerInput.camera property (case 1174688).
  • Fixed a number of issues in InputSystemUIInputModule.
    • Fixed GC heap garbage when click-dragging.
    • Fixed number of pointer states growing indefinitely if OS did not reuse touch IDs.
    • Fixed lastPress on PointerEventData getting lost.
    • Fixed button press-and-release happening in same frame resulting in no UI input.
    • Fixed clicks initiated from non-pointer devices resulting in pointer inputs with (0,0) positions.
    • Fixed huge screen deltas on pointer events from tracked devices.
    • Fixed touch input not sending pointer exit events (case 1213550).
  • Fixed TrackedDeviceRaycaster not setting screenPosition in RaycastResult.

Actions

  • Mixing the enabling&disabling of single actions (as, for example, performed by InputSystemUIInputModule) with enabling&disabling of entire action maps (as, for example, performed by PlayerInput) no longer leaves to unresponsive input and "should not reach here" assertions (forum thread).
  • Leaving play mode no longer leaves state change monitors lingering around from enabled actions.
  • Enabling action maps with bindings that do not refer to an existing action in the map no longer leads to asserts and exceptions when input on the bindings is received (case 1213085).
  • PressInteraction no longer misses the next button press if it gets reset from within the performed callback (case 1205285).
  • InputBinding.DisplayStringOptions.DontIncludeInteractions is now properly respected.
  • Reading the value of a composite binding no longer causes processors from the last active part binding to be applied rather than the processors of the composite itself, if any (case 1207082).
  • Fixed InputSystem.onActionChange getting invoked too many times on binding changes.

Added

  • InputSystemUIInputModule now sends pointer events using a new ExtendedPointerEventData instead of using the base PointerEventData class. This surfaces additional input data in pointer events.
  • Added InputSystemUIInputModule.pointerBehavior to allow dictating how the UI will resolve concurrent input from multiple pointers.

Actions

  • Added InputAction.CallbackContext.ReadValueAsButton.

1.0.0-preview.5

26 May 03:04
Compare
Choose a tag to compare
1.0.0-preview.5 Pre-release
Pre-release

[1.0.0-preview.5] - 2020-02-14

Changed

  • We've changed the rules that govern how action phases have to progress:
    • This is a breaking change!
      • The primary effect is additional callbacks getting triggered.
    • Before:
      • There were no enforced rules about how an action would go through InputAction.started, InputAction.performed, and InputAction.canceled. Which of the callbacks were triggered and in what order depended on a number of factors, the biggest influencer of which were the different interactions that could be applied to actions (like Press or Hold).
      • This made for unpredictable and frequently surprising results. In addition, it led to bugs where, for example, adding a Press interaction to the Click action of InputSystemUIInputModule would cause the click state to get stuck because the click action would never cancel.
    • Now:
      • The system will now always trigger InputAction.started first. If this is not done explicitly, it happens implicitly.
      • Likewise, the system will now always trigger InputAction.canceled before going back to waiting state. Like with InputAction.started, if this isn't done explicitly, it will happen implicitly. This implies that InputAction.canceled no longer signifies an action getting aborted because it stopped after it started but before it performed. It now simply means "the action has ended" whether it actually got performed or not.
      • In-between InputAction.started and InputAction.canceled, InputAction.performed may be triggered arbitrary many times (including not at all).
    • While late in the cycle for 1.0, we've opted to make this change now in order to fix a range of bugs and problems we've observed that people encountered because of the previous behavior of the system.
  • Related to the change above, the behavior of PressInteraction has been tweaked and now is the following:
    • Press Only: Starts and immediately performs when pressed, then stays performed and cancels when button is released.
    • Release Only: Starts when button is pressed and then performs and immediately cancels when the button is released.
    • Press And Release: Starts and immediately performs when button is pressed, then stays performed and performs again and immediately cancels when button is released.
  • Vector2Composite now has a mode parameter which can be used to choose between DigitalNormalized (the default), Digital (same as DigitalNormalized but does not normalize the resulting vector), and Analog (uses float input values as is).
    • Vector2Composite.normalize has been deprecated. Note that it will not work together with Analog. The parameter will be removed in the future.

Fixed

  • XR controllers and HMDs have proper display names in the UI again. This regressed in preview.4 such that all XR controllers were displayed as just "XR Controller" in the UI and all HMDs were displayed as "XR HMD".
  • InputSystemUIInputModule no longer generates GC heap garbage every time mouse events are processed.
  • Fixed a bug where an internal array helper method was corrupting array contents leading to bugs in both InputUser and Touch.
  • Fixed exception when saving changes to an Input Action asset and the parent directory has been renamed. (case 1207527)

Actions

  • The regression in 1.0.0-preview.4 of PlayerInputManager not joining players correctly if a scheme has more than one device requirement has been fixed.
    • This most notably manifested itself with keyboard+mouse control schemes.
  • PlayerInputManager will no longer join players when control schemes are used and none of the schemes produces a successful match based on the devices available for the join.
  • When no action map is selected in action editor, plus icon to add an action is now disabled; formerly threw an exception when clicked (case 1199562).
  • Removing a callback from actions from the callback itself no longer throws ArgumentOutOfRangeException (case 1192972).
  • "Invalid user" ArgumentException when turning the same PlayerInput on and off (case 1198889).
  • The list of device requirements for a control scheme in the action editor no longer displays devices with their internal layout name rather than their external display name.
  • StackOverflowException when Invoke Unity Events is selected in PlayerInput and it cannot find an action (#1033).
  • HoldInteraction now stays performed after timer has expired and cancels only on release of the control (case 1195498).
  • Foldouts in the various action UIs now properly toggle their expansion state when clicked in Unity 2019.3+ (case 1213781).

Added

  • We've added a new Simple Multiplayer sample which demonstrates a simple, bare-bones local multiplayer setup.
  • We've also added a Gamepad Mouse Cursor sample that shows how to drive a UI mouse cursor using the gamepad.
    • The sample contains a reusable VirtualMouseInput component that does most of the work.
  • Added a Deselect On Background Click option to InputSystemUIInputModule. This allows toggling the behavior off where clicking the mouse and not hitting a GameObject will automatically clear the current selection -- which will break keyboard and gamepad navigation.

1.0.0-preview.4

26 May 03:03
Compare
Choose a tag to compare
1.0.0-preview.4 Pre-release
Pre-release

[1.0.0-preview.4] - 2020-01-24

This release includes a number of Quality-of-Life improvements for a range of common problems that users have reported.

Added

  • To aid in debugging issues, we've extended the system's event tracing and replay functionality to allow persisting and replaying arbitrary input event streams.
    • InputEventTrace now has APIs to persist the events to disk and to load them back in from previously persisted event streams. The same API can be used to persist in arbitrary C# Stream instances, not just in file streams.
      // Write.
      myTrace.WriteTo("file.inputtrace");
      
      // Read.
      InputEventTrace.LoadFrom("file.inputtrace");
    • InputEventTrace now has built-in replay functionality.
      myTrace.Replay().PlayAllFramesOneByOne();
    • The event trace in device windows of the Input Debugger has been extended with controls to save and load traces.
  • We've added a new InputRecording sample which has a reusable MonoBehaviour component that can be used to capture and replay device activity.
  • Keyboard now has a FindKeyOnCurrentKeyboardLayout method to look up key controls by their display names.
  • Keyboards now have synthetic controls that combine left and right variants of modifier keys.
    • This means that you can bind to just "shift" now, for example, instead of having to bind to both "left shift" and "right shift".
      new InputAction(binding: "<Keyboard>/shift");
    • The controls are also available as properties on Keyboard.
      if (Keyboard.current.shiftKey.isPressed) /* ... */;
      
      // Is equivalent to:
      if (Keyboard.current.leftShiftKey.isPressed ||
          Keyboard.current.rightShiftKey.isPressed) /* ... */;
  • PlayerInput.active has been renamed to PlayerInput.inputIsActive to avoid ambiguities with GameObject activation.

Actions

  • PlayerInput now has a new Controls Changed event/message which is triggered when the control setup of the player changes (e.g. when switching control schemes).
        public void OnControlsChanged()
        {
            // Update UI display hints, for example...
        }
  • We've added APIs to simplify turning bindings into strings suitable for display in UIs.
    // Takes things such as currently bound controls and active binding masks into account
    // and can handle composites.
    action.GetBindingDisplayString();
    • Related to this, custom binding composites can now be annotated with the new DisplayStringFormat attribute to control how composites as a whole are turned into display strings.
      [DisplayStringFormat("{button}+{stick}")]
      public class MyComposite : InputBindingComposite<Vector2>
      {
          [InputControl(layout = "Button")] public int button;
          [InputControl(layout = "Stick")] public int stick;
      }
  • InputActionRebindingExtension.RebindingOperation has a new configuration method WithMatchingEventsBeingSuppressed which allows suitable input events to automatically be swallowed while a rebind is ongoing. This greatly helps with not having something else respond to input while a rebind is in progress.
  • We've added two new samples:
    • Rebinding UI: Demonstrates how to create a rebinding screen using the Input System's APIs. The sample also includes a reusable prefab you can use directly in your projects to quickly put rebinding screens together.
    • In-Game Hints: Demonstrates how to show context-sensitive help that respects the current control scheme.

Changed

  • The logic for resetting devices on focus loss has changed somewhat:
    • When focus is lost, all devices are forcibly reset to their default state. As before, a RequestResetCommand for each device is also sent to the backend but regardless of whether the device responds or not, the input state for the device will be overwritten to default.
    • Noisy controls are exempted from resets. The assumption here is that noisy controls most often represent sensor readings of some kind (e.g. tracking data) and snapping the values back to their default will usually
    • If Application.runInBackground is true, all devices that return true from InputDevice.canRunInBackground are exempted from resets entirely. This, for example, allows XR devices to continue running regardless of focus change.
    • This fixes problems such as keyboard keys getting stuck when alt-tabbing between applications (case 1206199).
  • InputControlExtensions.GetStatePtrFromStateEvent no longer throws InvalidOperationException when the state format for the event does not match that of the device. It simply returns null instead (same as when control is found in the event's state).
  • InputEventTrace instances are no longer disposed automatically from their finalizer but MUST be disposed of explicitly using Dispose().
    • This is to allow event traces to survive domain reloads. If they are disposed of automatically during finalizers, even if they survive the reload, the next GC will cause traces to be deallocated.

Actions

  • InputActionRebindingExtensions.PerformInteractiveRebinding has been greatly enhanced to apply a wide range of default configurations to the rebind. This greatly reduces the need to manually configure the resulting rebind.
    // Start a rebind with the default configuration.
    myAction.PerformInteractiveRebinding().Start();
    • Pointer position input will be ignored by default.
    • If not a suitable binding target itself, <Keyboard>/escape will automatically be made to quit the rebind.
    • Events with control input not explicitly matching exclusions will now get suppressed. This prevents input actions from getting triggered while a rebind is in progress.
    • The expected control type is automatically adjusted if a part binding of a composite is targeted by the rebind (e.g. if the action expects a Vector2 but the part binding expects a Button, the rebind switches automatically to Button).
    • If the targeted binding is part of a control scheme, controls will automatically be restricted to match the device requirements of the control scheme. For example, if the binding belongs to a "Keyboard&Mouse" scheme that has <Keyboard> and a <Mouse> requirement, the rebind will ignore input on gamepads.
    • As before, you can always create a RebindingOperation from scratch yourself or wipe/alter the configuration returned by PerformInteractiveRebinding however you see fit.
  • Control schemes can now handle ambiguity.
    • This means that, for example, you can now have one control scheme for generic gamepads and another control scheme specifically for PS4 controllers and the system will reliably pick the PS4 scheme when a PS4 controller is used and fall back to the generic gamepad scheme otherwise.
    • While this is exposed as a new score property on InputControlScheme.MatchResult, no code changes are necessary to take advantage of this feature.

Fixed

  • InputUser in combination with touchscreens no longer throws InvalidOperationException complaining about incorrect state format.
  • In a related change, InputControlExtensions.GetStatePtrFromStateEvent now works with touch events, too.
  • Input that occurs in-between pressing the play button and the game starting no longer leaks into the game (case 1191342).
    • This usually manifested itself as large accumulated mouse deltas leading to such effects as the camera immediately jerking around on game start.
  • Removing a device no longer has the potential of corrupting state change monitors (and thus actions getting triggered) from other devices.
    • This bug led to input being missed on a device once another device had been removed.
  • TrackedDevice layout is no longer incorrectly registered as Tracked Device.
  • Event traces in the input debugger are no longer lost on domain reloads.
  • IndexOutOfRangeException being thrown when looking up controls on XR devices.

Actions

  • Clicking the "Replace with InputSystemUIInputModule" button in the inspector when looking at StandaloneInputModule, the resulting operation is now undoable and will properly dirty the scene.

1.0.0-preview.3

26 May 03:03
Compare
Choose a tag to compare
1.0.0-preview.3 Pre-release
Pre-release

[1.0.0-preview.3] - 2019-11-14

Fixed

  • Fixed wrong event handlers getting removed when having three or more handlers on an event (case 1196143).
    • This was an bug in an internal data structure that impacted a number of code paths that were using the data structure.
  • Fixed LayoutNotFoundException being thrown when InputControlPath.ToHumanReadableString referenced a layout that could not be found.

1.0.0-preview.2

26 May 03:03
Compare
Choose a tag to compare
1.0.0-preview.2 Pre-release
Pre-release

[1.0.0-preview.2] - 2019-11-4

Changed

  • Automatic conversion of window coordinates in EditorWindow code is now performed regardless of focus or the setting of Lock Input to Game View in the input debugger.

Fixed

  • Fixed touch taps triggering when they shouldn't on Android.
  • Fixed custom devices registered from [InitializeOnLoad] code being lost on domain reload (case 1192379).
    • This happened when there were multiple pieces of [InitializeOnLoad] code that accessed the input system in the project and the RegisterLayout for the custom device happened to not be the first in sequence.
  • OpenVR touchpad controls (touchpadClicked & touchpadPressed) now report accurate data.

Actions

  • Fixed missing keyboard bindings in DefaultInputActions.inputactions for navigation in UI.
  • Fixed using C# reserved names in .inputactions assets leading to compile errors in generated C# classes (case 1189861).
  • Assigning a new InputActionAsset to a InputSystemUIInputModule will no longer look up action names globally but rather only look for actions that are located in action maps with the same name.
    • Previously, if you e.g. switched from one asset where the point action was bound to UI/Point to an asset that had no UI action map but did have an action called Point somewhere else, it would erroneously pick the most likely unrelated Point action for use by the UI.
  • Fixed missing custom editors for AxisDeadzoneProcessor and StickDeadzoneProcessor that link min and max values to input settings.
  • Fixed actions ending up being disabled if switching to a control scheme that has no binding for the action (case 1187377).
  • Fixed part of composite not being bound leading to subsequent part bindings not being functional (case 1189867).
  • Fixed PlayerInput not pairing devices added after it was enabled when not having control schemes.
    • This problem would also show in the SimpleDemo sample when having the CustomDeviceUsages sample installed as well. Gamepads would not get picked up in that case.
  • Fixed ArgumentNullException when adding a device and a binding in an action map had an empty path (case 1187163).
  • Fixed bindings that are not associated with any control scheme not getting enabled with other control schemes as they should.

Added

  • Added a new EditorWindow Demo sample that illustrates how to use the input system in editor UI code.

1.0.0-preview.1

26 May 03:03
Compare
Choose a tag to compare
1.0.0-preview.1 Pre-release
Pre-release

[1.0.0-preview.1] - 2019-10-11

Changed

  • Generated action wrappers now won't Destroy the generated Asset in a finalizer, but instead implement IDisposable.
  • Added back XR layouts (except for Magic Leap) that were removed for 1.0-preview.
    • We removed these layouts under the assumption that they would almost concurrently become available in the respective device-specific XR packages. However, this did not work out as expected and the gap here turned out to be more than what we anticipated.
    • To deal with this gap, we have moved the bulk of the XR layouts back and will transition things gradually as support in device-specific packages becomes publicly available.

Fixed

  • Fixed a bug where the Input Settings Window might throw exceptions after assembly reload.
  • Correctly implemented IsPointerOverGameObject method for InputSystemUIInputModule.
  • Several bugs with layout overrides registered with (InputSystem.RegisterLayoutOverrides).
    • In 1.0-preview, layout overrides could lead to corruption of the layout state and would also not be handled correctly by the various editor UIs.
  • Selecting a layout in the input debugger no longer selects its first child item, too.
  • Fixed XR devices reporting noise as valid user input (should fix problem of control schemes involving VR devices always activating when using PlayerInput).
  • Fixed tap/swipe gesture detection in touch samples.

Actions

  • Fixed a bug where multiple composite bindings for the same controls but on different action maps would throw exceptions.
  • Fixed anyKey not appearing in control picker for Keyboard.
  • The text on the "Listen" button is no longer clipped off on 2019.3.
  • Controls bound to actions through composites no longer show up as duplicates in the input debugger.
  • Fixed "Create Actions..." on PlayerInput creating an asset with an incorrect binding for taps on Touchscreens.
    NOTE: If you have already created an .inputactions asset with this mechanism, update "tap [Touchscreen]" to "Primary Touch/Tap" to fix the problem manually.
  • Fixed Invoke CSharp Events when selected in PlayerInput not triggering PlayerInput.onActionTriggered.
  • Fixed duplicating multiple items at the same time in the action editor duplicating them repeatedly.

Added

  • Will now recognize Xbox One and PS4 controllers connected to iOS devices correctly as Xbox One and PS4 controllers.
  • Added a new sample called "Custom Device Usages" that shows how to use a layout override on Gamepad to allow distinguishing two gamepads in bindings based on which player the gamepad is assigned to.
  • Added abstract TrackedDevice input device class as the basis for various kinds of tracked devices.

1.0.0-preview

26 May 03:02
Compare
Choose a tag to compare
1.0.0-preview Pre-release
Pre-release

[1.0.0-preview] - 2019-9-20

Fixed

-Will now close Input Action Asset Editor windows from previous sessions when the corresponding action was deleted.

  • Fixed an issue where Stick Controls could not be created in Players built with medium or high code stripping level enabled.
  • Fixed incorrect default state for axes on some controllers.

Actions

  • Fixed CallbackContext.ReadValue throwing when invoked during device removal

Changed

Added