From da43b3c3e032f28b6d62ae63903297eeeeb4a282 Mon Sep 17 00:00:00 2001 From: StefanUnity <40492087+stefanunity@users.noreply.github.com> Date: Tue, 16 Jul 2024 15:14:46 +0200 Subject: [PATCH 1/9] CHANGE: Bump version to 1.9.1 (#1964) * Bump version to 1.9.1 --- Assets/Samples/InGameHints/InGameHintsActions.cs | 2 +- Assets/Samples/SimpleDemo/SimpleControls.cs | 2 +- Assets/Tests/InputSystem/InputActionCodeGeneratorActions.cs | 2 +- Packages/com.unity.inputsystem/CHANGELOG.md | 2 ++ Packages/com.unity.inputsystem/InputSystem/AssemblyInfo.cs | 2 +- .../InputSystem/Devices/Precompiled/FastKeyboard.cs | 2 +- .../InputSystem/Devices/Precompiled/FastMouse.cs | 2 +- .../InputSystem/Devices/Precompiled/FastTouchscreen.cs | 2 +- .../com.unity.inputsystem/Tests/TestFixture/AssemblyInfo.cs | 2 +- Packages/com.unity.inputsystem/package.json | 2 +- 10 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Assets/Samples/InGameHints/InGameHintsActions.cs b/Assets/Samples/InGameHints/InGameHintsActions.cs index 44de75a137..65f1fcae1d 100644 --- a/Assets/Samples/InGameHints/InGameHintsActions.cs +++ b/Assets/Samples/InGameHints/InGameHintsActions.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator -// version 1.9.0 +// version 1.9.1 // from Assets/Samples/InGameHints/InGameHintsActions.inputactions // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Assets/Samples/SimpleDemo/SimpleControls.cs b/Assets/Samples/SimpleDemo/SimpleControls.cs index 7b4a98ed3e..6b1111801f 100644 --- a/Assets/Samples/SimpleDemo/SimpleControls.cs +++ b/Assets/Samples/SimpleDemo/SimpleControls.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator -// version 1.9.0 +// version 1.9.1 // from Assets/Samples/SimpleDemo/SimpleControls.inputactions // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Assets/Tests/InputSystem/InputActionCodeGeneratorActions.cs b/Assets/Tests/InputSystem/InputActionCodeGeneratorActions.cs index 3784cca795..ae075bd094 100644 --- a/Assets/Tests/InputSystem/InputActionCodeGeneratorActions.cs +++ b/Assets/Tests/InputSystem/InputActionCodeGeneratorActions.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator -// version 1.9.0 +// version 1.9.1 // from Assets/Tests/InputSystem/InputActionCodeGeneratorActions.inputactions // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Packages/com.unity.inputsystem/CHANGELOG.md b/Packages/com.unity.inputsystem/CHANGELOG.md index 3d14ba622b..71847c6f40 100644 --- a/Packages/com.unity.inputsystem/CHANGELOG.md +++ b/Packages/com.unity.inputsystem/CHANGELOG.md @@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. Due to package verification, the latest version below is the unpublished version and the date is meaningless. however, it has to be formatted properly to pass verification tests. +## [Unreleased] - yyyy-mm-dd + ## [1.9.0] - 2024-07-15 ### Changed diff --git a/Packages/com.unity.inputsystem/InputSystem/AssemblyInfo.cs b/Packages/com.unity.inputsystem/InputSystem/AssemblyInfo.cs index 2f32d3619e..8966f0e6a5 100644 --- a/Packages/com.unity.inputsystem/InputSystem/AssemblyInfo.cs +++ b/Packages/com.unity.inputsystem/InputSystem/AssemblyInfo.cs @@ -16,7 +16,7 @@ public static partial class InputSystem // Keep this in sync with "Packages/com.unity.inputsystem/package.json". // NOTE: Unfortunately, System.Version doesn't use semantic versioning so we can't include // "-preview" suffixes here. - internal const string kAssemblyVersion = "1.9.0"; + internal const string kAssemblyVersion = "1.9.1"; internal const string kDocUrl = "https://docs.unity3d.com/Packages/com.unity.inputsystem@1.9"; } } diff --git a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastKeyboard.cs b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastKeyboard.cs index f1f9a7fc83..5c4fc4215d 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastKeyboard.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastKeyboard.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputLayoutCodeGenerator -// version 1.9.0 +// version 1.9.1 // from "Keyboard" layout // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastMouse.cs b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastMouse.cs index b57decd6d0..e66331c0e3 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastMouse.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastMouse.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputLayoutCodeGenerator -// version 1.9.0 +// version 1.9.1 // from "Mouse" layout // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastTouchscreen.cs b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastTouchscreen.cs index 02a692edd5..2a4a6e2bc7 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastTouchscreen.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastTouchscreen.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputLayoutCodeGenerator -// version 1.9.0 +// version 1.9.1 // from "Touchscreen" layout // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Packages/com.unity.inputsystem/Tests/TestFixture/AssemblyInfo.cs b/Packages/com.unity.inputsystem/Tests/TestFixture/AssemblyInfo.cs index e13c47f98e..71d3624532 100644 --- a/Packages/com.unity.inputsystem/Tests/TestFixture/AssemblyInfo.cs +++ b/Packages/com.unity.inputsystem/Tests/TestFixture/AssemblyInfo.cs @@ -4,7 +4,7 @@ // Keep this in sync with "Packages/com.unity.inputsystem/package.json". // NOTE: Unfortunately, System.Version doesn't use semantic versioning so we can't include // "-preview" suffixes here. -[assembly: AssemblyVersion("1.9.0")] +[assembly: AssemblyVersion("1.9.1")] [assembly: InternalsVisibleTo("Unity.InputSystem.Tests.Editor")] [assembly: InternalsVisibleTo("Unity.InputSystem.Tests")] [assembly: InternalsVisibleTo("Unity.InputSystem.IntegrationTests")] diff --git a/Packages/com.unity.inputsystem/package.json b/Packages/com.unity.inputsystem/package.json index 7c25c5e5a8..55e23cafda 100755 --- a/Packages/com.unity.inputsystem/package.json +++ b/Packages/com.unity.inputsystem/package.json @@ -1,7 +1,7 @@ { "name": "com.unity.inputsystem", "displayName": "Input System", - "version": "1.9.0", + "version": "1.9.1", "unity": "2019.4", "description": "A new input system which can be used as a more extensible and customizable alternative to Unity's classic input system in UnityEngine.Input.", "keywords": [ From 230cfd669445c9d4b424207cc106bb97162d795f Mon Sep 17 00:00:00 2001 From: benoitalain <35855598+benoitalain@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:56:59 -0400 Subject: [PATCH 2/9] FIX: ISXB-808 scroll wheel event system different than ui builder (#1959) * Fixed ISXB-766, ISXB-808, ISXB-704, conditional to trunk PR #49932. * Updated for latest trunk PR changes (5f81a20). * Reverted fix for ISXB-808 and partly ISXB-766. Kept ISBX-704 fix. * Added scroll wheel normalization tests for UI and InputForUI. * Recommended changes from @ekcoh. Added more #if UNITY_6000_0_OR_NEWER. * Added missing #if UNITY_6000_0_OR_NEWER in InputForUITests * Added changes to CHANGELOG.md * Override BaseInputModule.scrollWheelDeltaPerTick to 6 for InputSystem. * Improved Scroll Wheel Delta UI tooltip text * Improved API docs for ScrollDeltaBehavior * fixed bad xml tag * Replaced UNITY_6000_0_OR_NEWER by asmdef versionDefines >= 6000.0.9 * Added InputSystemUIInputModule.scrollDeltaPerTick for more flexibility. * Fixed missed #if replacement in UITests. * formatting * Fixed UNITY_INPUT_SYSTEM_INPUT_MODULE_SCROLL_DELTA unity version in asmdef. * Added changelog entry for new InputSystemUIInputModule.scrollDeltaPerTick. * Added changelog entry for ISXB-766 fix. * Added safety against division by 0 for scrollDeltaPerTick. Added test. * formatting * Recommended change from @joao-freire. Adjust minimal delta per tick. * Fixed compile error in InputSystemProvider when not on >= 6000.0.11f1. * Improved docs for scrollDeltaPerTick * fixed typo * formatting * Moved fixes in changelog to match [Unreleased] tag * Bump version to 1.10.0 * Fixed Editor_HelpUrlsPointToCurrentVersion --------- Co-authored-by: Ben Pitt --- .../Samples/InGameHints/InGameHintsActions.cs | 2 +- Assets/Samples/SimpleDemo/SimpleControls.cs | 2 +- .../InputActionCodeGeneratorActions.cs | 2 +- Assets/Tests/InputSystem/Plugins/UITests.cs | 30 +++++++++++++-- .../Unity.InputSystem.Tests.asmdef | 5 +++ Packages/com.unity.inputsystem/CHANGELOG.md | 11 ++++-- .../InputSystem/AssemblyInfo.cs | 4 +- .../Devices/Precompiled/FastKeyboard.cs | 2 +- .../Devices/Precompiled/FastMouse.cs | 2 +- .../Devices/Precompiled/FastTouchscreen.cs | 2 +- .../Plugins/InputForUI/InputSystemProvider.cs | 4 ++ .../Plugins/UI/InputSystemUIInputModule.cs | 38 ++++++++++++++++++- .../InputSystem/Unity.InputSystem.asmdef | 5 +++ .../Tests/TestFixture/AssemblyInfo.cs | 2 +- Packages/com.unity.inputsystem/package.json | 2 +- 15 files changed, 94 insertions(+), 19 deletions(-) diff --git a/Assets/Samples/InGameHints/InGameHintsActions.cs b/Assets/Samples/InGameHints/InGameHintsActions.cs index 65f1fcae1d..5c880a15b2 100644 --- a/Assets/Samples/InGameHints/InGameHintsActions.cs +++ b/Assets/Samples/InGameHints/InGameHintsActions.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator -// version 1.9.1 +// version 1.10.0 // from Assets/Samples/InGameHints/InGameHintsActions.inputactions // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Assets/Samples/SimpleDemo/SimpleControls.cs b/Assets/Samples/SimpleDemo/SimpleControls.cs index 6b1111801f..279e3117eb 100644 --- a/Assets/Samples/SimpleDemo/SimpleControls.cs +++ b/Assets/Samples/SimpleDemo/SimpleControls.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator -// version 1.9.1 +// version 1.10.0 // from Assets/Samples/SimpleDemo/SimpleControls.inputactions // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Assets/Tests/InputSystem/InputActionCodeGeneratorActions.cs b/Assets/Tests/InputSystem/InputActionCodeGeneratorActions.cs index ae075bd094..b4dc55fafd 100644 --- a/Assets/Tests/InputSystem/InputActionCodeGeneratorActions.cs +++ b/Assets/Tests/InputSystem/InputActionCodeGeneratorActions.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator -// version 1.9.1 +// version 1.10.0 // from Assets/Tests/InputSystem/InputActionCodeGeneratorActions.inputactions // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Assets/Tests/InputSystem/Plugins/UITests.cs b/Assets/Tests/InputSystem/Plugins/UITests.cs index ad9db41f0f..fce62a0a19 100644 --- a/Assets/Tests/InputSystem/Plugins/UITests.cs +++ b/Assets/Tests/InputSystem/Plugins/UITests.cs @@ -1037,7 +1037,7 @@ public IEnumerator UI_CanDriveUIFromPointer(string deviceLayout, UIPointerType p Assert.That(scene.rightChildReceiver.events[0].pointerData.pointerId, Is.EqualTo(pointerId)); Assert.That(scene.rightChildReceiver.events[0].pointerData.position, Is.EqualTo(thirdScreenPosition).Using(Vector2EqualityComparer.Instance)); Assert.That(scene.rightChildReceiver.events[0].pointerData.delta, Is.EqualTo(Vector2.zero)); - Assert.That(scene.rightChildReceiver.events[0].pointerData.scrollDelta, Is.EqualTo(Vector2.one).Using(Vector2EqualityComparer.Instance)); + Assert.That(scene.rightChildReceiver.events[0].pointerData.scrollDelta, Is.EqualTo(Vector2.one * scene.uiModule.scrollDeltaPerTick).Using(Vector2EqualityComparer.Instance)); Assert.That(scene.rightChildReceiver.events[0].pointerData.pointerEnter, Is.SameAs(scene.rightGameObject)); Assert.That(scene.rightChildReceiver.events[0].pointerData.pointerDrag, Is.Null); Assert.That(scene.rightChildReceiver.events[0].pointerData.pointerPress, Is.Null); @@ -1201,16 +1201,40 @@ public IEnumerator UI_ReceivesNormalizedScrollWheelDelta(float scrollWheelDeltaP Set(mouse.scroll, new Vector2(0, scrollWheelDeltaPerTick)); yield return null; - // UI should receive scroll delta in the [-1, 1] range. + // UI should receive scroll delta in the range defined by InputSystemUIInputModule. Assert.That(scene.leftChildReceiver.events, EventSequence( OneEvent("type", EventType.Scroll), AllEvents("position", scene.From640x480ToScreen(100, 100)), - AllEvents("scrollDelta", Vector2.up) + AllEvents("scrollDelta", Vector2.up * scene.uiModule.scrollDeltaPerTick) ) ); } +#endif + +#if UNITY_INPUT_SYSTEM_INPUT_MODULE_SCROLL_DELTA + [TestCase(1)] + [TestCase(2)] + [Category("UI")] + public void UI_ConvertPointerEventScrollDeltaToTicks_AppliesScrollWheelMultiplier(float multiplier) + { + var scene = CreateTestUI(); + scene.uiModule.scrollDeltaPerTick = multiplier; + var ticks = scene.uiModule.ConvertPointerEventScrollDeltaToTicks(Vector2.one); + Assert.That(ticks, Is.EqualTo(Vector2.one / multiplier).Within(0.001f)); + } + + [TestCase(0)] + [TestCase(1)] + [Category("UI")] + public void UI_ConvertPointerEventScrollDeltaToTicks_ReturnsZeroIfScrollDeltaPerTickIsZero(float delta) + { + var scene = CreateTestUI(); + scene.uiModule.scrollDeltaPerTick = 0; + Assert.That(scene.uiModule.ConvertPointerEventScrollDeltaToTicks(Vector2.one * delta), Is.EqualTo(Vector2.zero)); + } + #endif [UnityTest] diff --git a/Assets/Tests/InputSystem/Unity.InputSystem.Tests.asmdef b/Assets/Tests/InputSystem/Unity.InputSystem.Tests.asmdef index 1887a23960..5c292b6da1 100644 --- a/Assets/Tests/InputSystem/Unity.InputSystem.Tests.asmdef +++ b/Assets/Tests/InputSystem/Unity.InputSystem.Tests.asmdef @@ -50,6 +50,11 @@ "name": "Unity", "expression": "6000.0.9", "define": "UNITY_INPUT_SYSTEM_PLATFORM_SCROLL_DELTA" + }, + { + "name": "Unity", + "expression": "6000.0.11", + "define": "UNITY_INPUT_SYSTEM_INPUT_MODULE_SCROLL_DELTA" } ], "noEngineReferences": false diff --git a/Packages/com.unity.inputsystem/CHANGELOG.md b/Packages/com.unity.inputsystem/CHANGELOG.md index 71847c6f40..f66b250964 100644 --- a/Packages/com.unity.inputsystem/CHANGELOG.md +++ b/Packages/com.unity.inputsystem/CHANGELOG.md @@ -10,6 +10,12 @@ however, it has to be formatted properly to pass verification tests. ## [Unreleased] - yyyy-mm-dd +### Fixed +- Fixed default scroll speed in uGUI being slower than before. [ISXB-766](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-766) + +### 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] - 2024-07-15 ### Changed @@ -40,16 +46,13 @@ however, it has to be formatted properly to pass verification tests. - Fixed deletion of last composite part raising an exception. [ISXB-804](https://issuetracker.unity3d.com/product/unity/issues/guid/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](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-547). +- Fixed deletion of last composite part raising an exception. [ISXB-804](https://issuetracker.unity3d.com/product/unity/issues/guid/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. -- Fixed deletion of last composite part raising an exception. [ISXB-804](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-804) - Expanded editor and build insight analytics to cover ``.inputactions` asset editor usage, `InputSettings` and common component configurations. - -### Changed -- 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. ## [1.8.2] - 2024-04-29 diff --git a/Packages/com.unity.inputsystem/InputSystem/AssemblyInfo.cs b/Packages/com.unity.inputsystem/InputSystem/AssemblyInfo.cs index 8966f0e6a5..1278bde8e6 100644 --- a/Packages/com.unity.inputsystem/InputSystem/AssemblyInfo.cs +++ b/Packages/com.unity.inputsystem/InputSystem/AssemblyInfo.cs @@ -16,7 +16,7 @@ public static partial class InputSystem // Keep this in sync with "Packages/com.unity.inputsystem/package.json". // NOTE: Unfortunately, System.Version doesn't use semantic versioning so we can't include // "-preview" suffixes here. - internal const string kAssemblyVersion = "1.9.1"; - internal const string kDocUrl = "https://docs.unity3d.com/Packages/com.unity.inputsystem@1.9"; + internal const string kAssemblyVersion = "1.10.0"; + internal const string kDocUrl = "https://docs.unity3d.com/Packages/com.unity.inputsystem@1.10"; } } diff --git a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastKeyboard.cs b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastKeyboard.cs index 5c4fc4215d..390bf787bc 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastKeyboard.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastKeyboard.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputLayoutCodeGenerator -// version 1.9.1 +// version 1.10.0 // from "Keyboard" layout // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastMouse.cs b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastMouse.cs index e66331c0e3..5a4d2742be 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastMouse.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastMouse.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputLayoutCodeGenerator -// version 1.9.1 +// version 1.10.0 // from "Mouse" layout // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastTouchscreen.cs b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastTouchscreen.cs index 2a4a6e2bc7..bcc91c52dd 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastTouchscreen.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Devices/Precompiled/FastTouchscreen.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was auto-generated by com.unity.inputsystem:InputLayoutCodeGenerator -// version 1.9.1 +// version 1.10.0 // from "Touchscreen" layout // // Changes to this file may cause incorrect behavior and will be lost if diff --git a/Packages/com.unity.inputsystem/InputSystem/Plugins/InputForUI/InputSystemProvider.cs b/Packages/com.unity.inputsystem/InputSystem/Plugins/InputForUI/InputSystemProvider.cs index 06b7ca4875..98e06a7bea 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Plugins/InputForUI/InputSystemProvider.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Plugins/InputForUI/InputSystemProvider.cs @@ -45,7 +45,11 @@ internal class InputSystemProvider : IEventProviderImpl NavigationEventRepeatHelper m_RepeatHelper = new(); bool m_ResetSeenEventsOnUpdate; +#if UNITY_INPUT_SYSTEM_INPUT_MODULE_SCROLL_DELTA + const float kScrollUGUIScaleFactor = UIElements.WheelEvent.scrollDeltaPerTick; +#else const float kScrollUGUIScaleFactor = 3.0f; +#endif static Action s_OnRegisterActions; diff --git a/Packages/com.unity.inputsystem/InputSystem/Plugins/UI/InputSystemUIInputModule.cs b/Packages/com.unity.inputsystem/InputSystem/Plugins/UI/InputSystemUIInputModule.cs index aca90c662a..9f38d97ad5 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Plugins/UI/InputSystemUIInputModule.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Plugins/UI/InputSystemUIInputModule.cs @@ -116,6 +116,24 @@ internal GameObject localMultiPlayerRoot set => m_LocalMultiPlayerRoot = value; } + /// + /// A multiplier value that allows you to adjust the scroll wheel speed sent to uGUI (Unity UI) components. + /// + /// + /// This value controls the magnitude of the PointerEventData.scrollDelta value, when the scroll wheel is rotated one tick. It acts as a multiplier, so a value of 1 passes through the original value and behaves the same as the legacy Standalone Input Module. + /// + /// A value larger than one increases the scrolling speed per tick, and a value less than one decreases the speed. + /// + /// You can set this to a negative value to invert the scroll direction. A value of zero prevents mousewheel scrolling from working at all. + /// + /// Note: this has no effect on UI Toolkit content, only uGUI components. + /// + public float scrollDeltaPerTick + { + get => m_ScrollDeltaPerTick; + set => m_ScrollDeltaPerTick = value; + } + /// /// Called by EventSystem when the input module is made current. /// @@ -2070,10 +2088,10 @@ private void OnScrollCallback(InputAction.CallbackContext context) ref var state = ref GetPointerStateForIndex(index); - state.scrollDelta = context.ReadValue(); + var scrollDelta = context.ReadValue(); // ISXB-704: convert input value to BaseInputModule convention. - state.scrollDelta *= (1.0f / InputSystem.scrollWheelDeltaPerTick); + state.scrollDelta = (scrollDelta / InputSystem.scrollWheelDeltaPerTick) * scrollDeltaPerTick; #if UNITY_2022_3_OR_NEWER state.eventData.displayIndex = GetDisplayIndexFor(context.control); @@ -2217,6 +2235,18 @@ public override int ConvertUIToolkitPointerId(PointerEventData sourcePointerData : base.ConvertUIToolkitPointerId(sourcePointerData); } +#endif + +#if UNITY_INPUT_SYSTEM_INPUT_MODULE_SCROLL_DELTA + const float kSmallestScrollDeltaPerTick = 0.00001f; + public override Vector2 ConvertPointerEventScrollDeltaToTicks(Vector2 scrollDelta) + { + if (Mathf.Abs(scrollDeltaPerTick) < kSmallestScrollDeltaPerTick) + return Vector2.zero; + + return scrollDelta / scrollDeltaPerTick; + } + #endif private void HookActions() @@ -2352,6 +2382,10 @@ public InputActionAsset actionsAsset [SerializeField] private UIPointerBehavior m_PointerBehavior = UIPointerBehavior.SingleMouseOrPenButMultiTouchAndTrack; [SerializeField, HideInInspector] internal CursorLockBehavior m_CursorLockBehavior = CursorLockBehavior.OutsideScreen; + // See ISXB-766 for a history of where the 6.0f value comes from + // (we used to have 120 per tick on Windows and divided it by 20.) + [SerializeField] private float m_ScrollDeltaPerTick = 6.0f; + private static Dictionary s_InputActionReferenceCounts = new Dictionary(); private struct InputActionReferenceState diff --git a/Packages/com.unity.inputsystem/InputSystem/Unity.InputSystem.asmdef b/Packages/com.unity.inputsystem/InputSystem/Unity.InputSystem.asmdef index 1d040567c8..5c22fadc32 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Unity.InputSystem.asmdef +++ b/Packages/com.unity.inputsystem/InputSystem/Unity.InputSystem.asmdef @@ -86,6 +86,11 @@ "name": "Unity", "expression": "6000.0.9", "define": "UNITY_INPUT_SYSTEM_PLATFORM_SCROLL_DELTA" + }, + { + "name": "Unity", + "expression": "6000.0.11", + "define": "UNITY_INPUT_SYSTEM_INPUT_MODULE_SCROLL_DELTA" } ], "noEngineReferences": false diff --git a/Packages/com.unity.inputsystem/Tests/TestFixture/AssemblyInfo.cs b/Packages/com.unity.inputsystem/Tests/TestFixture/AssemblyInfo.cs index 71d3624532..a09559471c 100644 --- a/Packages/com.unity.inputsystem/Tests/TestFixture/AssemblyInfo.cs +++ b/Packages/com.unity.inputsystem/Tests/TestFixture/AssemblyInfo.cs @@ -4,7 +4,7 @@ // Keep this in sync with "Packages/com.unity.inputsystem/package.json". // NOTE: Unfortunately, System.Version doesn't use semantic versioning so we can't include // "-preview" suffixes here. -[assembly: AssemblyVersion("1.9.1")] +[assembly: AssemblyVersion("1.10.0")] [assembly: InternalsVisibleTo("Unity.InputSystem.Tests.Editor")] [assembly: InternalsVisibleTo("Unity.InputSystem.Tests")] [assembly: InternalsVisibleTo("Unity.InputSystem.IntegrationTests")] diff --git a/Packages/com.unity.inputsystem/package.json b/Packages/com.unity.inputsystem/package.json index 55e23cafda..7d0c35d8db 100755 --- a/Packages/com.unity.inputsystem/package.json +++ b/Packages/com.unity.inputsystem/package.json @@ -1,7 +1,7 @@ { "name": "com.unity.inputsystem", "displayName": "Input System", - "version": "1.9.1", + "version": "1.10.0", "unity": "2019.4", "description": "A new input system which can be used as a more extensible and customizable alternative to Unity's classic input system in UnityEngine.Input.", "keywords": [ From 65357c25b92493935d93468eeb182c798152ddb8 Mon Sep 17 00:00:00 2001 From: bmalrat <47957918+bmalrat@users.noreply.github.com> Date: Thu, 18 Jul 2024 13:25:13 +0200 Subject: [PATCH 3/9] FIX: interactions reset when performed is triggered by the cancelation the current active interaction (ISXB-310) (#1963) * fixed interactions reset when performed is triggered by the cancelation the current active interaction * fix doc and format --- .../CoreTests_Actions_Interactions.cs | 42 +++++++++++++++++++ Packages/com.unity.inputsystem/CHANGELOG.md | 1 + .../Documentation~/Interactions.md | 7 ++-- .../InputSystem/Actions/InputActionState.cs | 8 ++++ 4 files changed, 55 insertions(+), 3 deletions(-) diff --git a/Assets/Tests/InputSystem/CoreTests_Actions_Interactions.cs b/Assets/Tests/InputSystem/CoreTests_Actions_Interactions.cs index dc419af0ef..1712efcbfe 100644 --- a/Assets/Tests/InputSystem/CoreTests_Actions_Interactions.cs +++ b/Assets/Tests/InputSystem/CoreTests_Actions_Interactions.cs @@ -231,6 +231,48 @@ public void Actions_WhenTransitioningFromOneInteractionToNext_GetCallbacks() } } + // https://jira.unity3d.com/browse/ISXB-310 + [Test] + [Category("Actions")] + public void Actions_WhenTransitioningFromOneInteractionToNextAlreadyPerformed_GetCallbacksAndResetOtherInteractions() + { + ResetTime(); + + var gamepad = InputSystem.AddDevice(); + + var action = new InputAction("test", InputActionType.Button, binding: "/buttonSouth", + interactions: "multiTap(tapCount=3),multiTap,Tap"); + action.Enable(); + + using (var trace = new InputActionTrace(action)) + { + // Trigger the second interaction with a double tap which also internally performs a tap on the third one. + PressAndRelease(gamepad.buttonSouth); + PressAndRelease(gamepad.buttonSouth, 0.2); + currentTime = 2; + InputSystem.Update(); + Assert.That(trace, + Started(action, gamepad.buttonSouth, time: 0) + .AndThen(Canceled(action, gamepad.buttonSouth, duration: 2)) + .AndThen(Started(action, gamepad.buttonSouth)) + .AndThen(Performed(action, gamepad.buttonSouth, duration: 0.2))); + + trace.Clear(); + + // Trigger the third interaction with a tap and ensure that doesn't come from the previous one. + PressAndRelease(gamepad.buttonSouth, time: 4); + currentTime = 6; + InputSystem.Update(); + Assert.That(trace, + Started(action, gamepad.buttonSouth, time: 4) + .AndThen(Canceled(action, gamepad.buttonSouth, duration: 2)) + .AndThen(Started(action, gamepad.buttonSouth, time: 4)) + .AndThen(Canceled(action, gamepad.buttonSouth, duration: 2)) + .AndThen(Started(action, gamepad.buttonSouth, time: 4)) + .AndThen(Performed(action, gamepad.buttonSouth, time: 4))); + } + } + [Test] [Category("Actions")] public void Actions_CanPerformPressInteraction() diff --git a/Packages/com.unity.inputsystem/CHANGELOG.md b/Packages/com.unity.inputsystem/CHANGELOG.md index f66b250964..c7175a3c70 100644 --- a/Packages/com.unity.inputsystem/CHANGELOG.md +++ b/Packages/com.unity.inputsystem/CHANGELOG.md @@ -12,6 +12,7 @@ however, it has to be formatted properly to pass verification tests. ### Fixed - Fixed default scroll speed in uGUI being slower than before. [ISXB-766](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-766) +- Fixed an issue when multiple interactions drive an action and perform during the cancelation of the current active interaction [ISXB-310](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-310). ### 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. diff --git a/Packages/com.unity.inputsystem/Documentation~/Interactions.md b/Packages/com.unity.inputsystem/Documentation~/Interactions.md index f8a03f76b6..e7933342ce 100644 --- a/Packages/com.unity.inputsystem/Documentation~/Interactions.md +++ b/Packages/com.unity.inputsystem/Documentation~/Interactions.md @@ -47,19 +47,19 @@ The following example demonstrates this kind of setup with a fire Action that th var fireAction = new InputAction("fire"); fireAction.AddBinding("/buttonSouth") // Tap fires, slow tap charges. Both act on release. - .WithInteractions("tap;slowTap"); + .WithInteractions("tap,slowTap"); fireAction.started += context => { - if (context.Interaction is SlowTapInteraction) + if (context.interaction is SlowTapInteraction) ShowChargingUI(); }; fireAction.performed += context => { - if (context.Interaction is SlowTapInteraction) + if (context.interaction is SlowTapInteraction) ChargedFire(); else Fire(); @@ -67,6 +67,7 @@ fireAction.performed += fireAction.canceled += _ => HideChargingUI(); +fireAction.Enable(); ``` ### Multiple Controls on an Action diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionState.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionState.cs index 95314187fb..b196c654a0 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionState.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Actions/InputActionState.cs @@ -2266,6 +2266,14 @@ internal void ChangePhaseOfInteraction(InputActionPhase newPhase, ref TriggerSta }; if (!ChangePhaseOfAction(InputActionPhase.Performed, ref triggerForInteraction, phaseAfterPerformedOrCanceled)) return; + + // We performed the action, + // so reset remaining interaction to waiting state. + for (; i < numInteractions; ++i) + { + index = interactionStartIndex + i; + ResetInteractionState(index); + } } break; } From 21726c7ef8be3fc4f1d7b51d995b505348f4af5d Mon Sep 17 00:00:00 2001 From: StefanUnity <40492087+stefanunity@users.noreply.github.com> Date: Thu, 18 Jul 2024 15:44:19 +0200 Subject: [PATCH 4/9] CHANGE: Update ci to use new Package Verification Profile to generate errors (#1965) * added new PVP execution to "Publish to Internal Registry (Dry Run)" yamato job * added .\yamato\PVPexemptions.json file that includes all the errors the package currently generates * any new errors will fail this job and you can see the report in the results tab of the job in yamato * our grandfathered exemptsions being added to the system at https://github.cds.internal.unity3d.com/unity/pets.pvp-catalog/pull/23 * also fixed 2 small error categories as part of this PR (trainling spaces, wrong meta files) * PVP-40-1 will complain about [Unreleased] in our changelog but won't be a problem on stable branch where that section will not exist during our package release --- .yamato/PVPexemptions.json | 1588 +++++++++++++++++ .yamato/upm-ci.yml | 3 + Assets/Samples/CustomComposite/.sample.json | 2 +- Assets/Samples/CustomDevice/.sample.json | 2 +- .../Samples/CustomDeviceUsages/.sample.json | 2 +- .../CustomDeviceUsages/.sample.json.meta | 3 - .../Samples/GamepadMouseCursor/.sample.json | 2 +- Assets/Samples/InGameHints/.sample.json | 2 +- Assets/Samples/InputDeviceTester/.sample.json | 2 +- .../InputDeviceTester/.sample.json.meta | 3 - Assets/Samples/InputRecorder/.sample.json | 2 +- Assets/Samples/OnScreenControls/.sample.json | 2 +- Assets/Samples/RebindingUI/.sample.json | 2 +- Assets/Samples/SimpleDemo/.sample.json | 2 +- Assets/Samples/SimpleDemo/.sample.json.meta | 3 - Assets/Samples/SimpleMultiplayer/.sample.json | 2 +- Assets/Samples/TouchSamples/.sample.json | 2 +- Assets/Samples/UIvsGameInput/.sample.json | 2 +- Assets/Samples/UnityRemote/.sample.json | 2 +- Assets/Samples/Visualizers/.sample.json | 2 +- Packages/com.unity.inputsystem/CHANGELOG.md | 1 + 21 files changed, 1607 insertions(+), 24 deletions(-) create mode 100644 .yamato/PVPexemptions.json delete mode 100644 Assets/Samples/CustomDeviceUsages/.sample.json.meta delete mode 100644 Assets/Samples/InputDeviceTester/.sample.json.meta delete mode 100644 Assets/Samples/SimpleDemo/.sample.json.meta diff --git a/.yamato/PVPexemptions.json b/.yamato/PVPexemptions.json new file mode 100644 index 0000000000..5c132789c7 --- /dev/null +++ b/.yamato/PVPexemptions.json @@ -0,0 +1,1588 @@ +{ + "per_package": { + "com.unity.inputsystem@1": { + "exempts": { + "PVP-27-1": { + "errors": [ + "Samples~/InputDeviceTester/.sample.json: 3d9c0d91f50349d29637153ddec7f1d9", + "Samples~/SimpleDemo/.sample.json: 3d9c0d91f50349d29637153ddec7f1d9" + ] + }, + "PVP-33-1": { + "errors": [ + "Documentation~/.vscode/spellright.dict", + "Samples~/CustomComposite/.sample.json", + "Samples~/CustomDevice/.sample.json", + "Samples~/CustomDeviceUsages/.sample.json", + "Samples~/GamepadMouseCursor/.sample.json", + "Samples~/InGameHints/.sample.json", + "Samples~/InputDeviceTester/.sample.json", + "Samples~/InputRecorder/.sample.json", + "Samples~/OnScreenControls/.sample.json", + "Samples~/RebindingUI/.sample.json", + "Samples~/SimpleDemo/.sample.json", + "Samples~/SimpleMultiplayer/.sample.json", + "Samples~/TouchSamples/.sample.json", + "Samples~/UIvsGameInput/.sample.json", + "Samples~/UnityRemote/.sample.json", + "Samples~/Visualizers/.sample.json" + ] + }, + "PVP-38-1": { + "errors": [ + "InputSystem/Editor/AssetEditor/Resources/personal/actionTreeBackground.png.meta", + "InputSystem/Editor/AssetEditor/Resources/pro/actionTreeBackground.png.meta", + "InputSystem/Editor/AssetEditor/Resources/personal/actionTreeBackgroundWithoutBorder.png.meta", + "InputSystem/Editor/AssetEditor/Resources/pro/actionTreeBackgroundWithoutBorder.png.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/BindingPanelRowTemplate.uxml.meta", + "InputSystem/Editor/AssetEditor/Resources/blue.png.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/CompositeBindingPropertiesEditor.uxml.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/CompositePartBindingPropertiesEditor.uxml.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/ControlSchemeEditor.uxml.meta", + "InputSystem/Editor/AssetEditor/Resources/personal/foldoutBackground.png.meta", + "InputSystem/Editor/AssetEditor/Resources/pro/foldoutBackground.png.meta", + "InputSystem/Editor/AssetEditor/Resources/green.png.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionMapsTreeViewItem.uxml.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionsEditor.uxml.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionsEditorStyles.uss.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionsProjectSettings.uxml.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionsTreeViewItem.uxml.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/InputAssetEditorDark.uss.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/InputAssetEditorLight.uss.meta", + "InputSystem/Editor/UITKAssetEditor/Resources/NameAndParameterListViewItemTemplate.uxml.meta", + "InputSystem/Editor/AssetEditor/Resources/personal.meta", + "InputSystem/Editor/AssetEditor/Resources/pink.png.meta", + "InputSystem/Editor/AssetEditor/Resources/pro.meta", + "InputSystem/Editor/AssetEditor/Resources/personal/propertiesBackground.png.meta", + "InputSystem/Editor/AssetEditor/Resources/pro/propertiesBackground.png.meta", + "InputSystem/Editor/AssetEditor/Resources/yellow.png.meta", + "InputSystem/Editor/AssetEditor/Resources/personal/actionTreeBackground.png", + "InputSystem/Editor/AssetEditor/Resources/pro/actionTreeBackground.png", + "InputSystem/Editor/AssetEditor/Resources/personal/actionTreeBackgroundWithoutBorder.png", + "InputSystem/Editor/AssetEditor/Resources/pro/actionTreeBackgroundWithoutBorder.png", + "InputSystem/Editor/AssetEditor/Resources/blue.png", + "InputSystem/Editor/AssetEditor/Resources/personal/foldoutBackground.png", + "InputSystem/Editor/AssetEditor/Resources/pro/foldoutBackground.png", + "InputSystem/Editor/AssetEditor/Resources/green.png", + "InputSystem/Editor/AssetEditor/Resources/pink.png", + "InputSystem/Editor/AssetEditor/Resources/personal/propertiesBackground.png", + "InputSystem/Editor/AssetEditor/Resources/pro/propertiesBackground.png", + "InputSystem/Editor/AssetEditor/Resources/yellow.png", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionsEditorStyles.uss", + "InputSystem/Editor/UITKAssetEditor/Resources/InputAssetEditorDark.uss", + "InputSystem/Editor/UITKAssetEditor/Resources/InputAssetEditorLight.uss", + "InputSystem/Editor/UITKAssetEditor/Resources/BindingPanelRowTemplate.uxml", + "InputSystem/Editor/UITKAssetEditor/Resources/CompositeBindingPropertiesEditor.uxml", + "InputSystem/Editor/UITKAssetEditor/Resources/CompositePartBindingPropertiesEditor.uxml", + "InputSystem/Editor/UITKAssetEditor/Resources/ControlSchemeEditor.uxml", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionMapsTreeViewItem.uxml", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionsEditor.uxml", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionsProjectSettings.uxml", + "InputSystem/Editor/UITKAssetEditor/Resources/InputActionsTreeViewItem.uxml", + "InputSystem/Editor/UITKAssetEditor/Resources/NameAndParameterListViewItemTemplate.uxml" + ] + }, + "PVP-40-1": { + "errors": [ + "CHANGELOG.md: line 11: header must match regex: ^\\[(?.*)\\]( - (?\\d{4}-\\d{2}-\\d{2}))?$" + ] + }, + "PVP-91-3": { + "errors": [ + "Samples~/RebindingUI/Icons/PS4_Circle.png.meta: /ps4_circle.png.meta", + "Samples~/RebindingUI/Icons/PS4_Cross.png.meta: /ps4_cross.png.meta", + "Samples~/RebindingUI/Icons/PS4_Dpad_Down.png.meta: /ps4_dpad_down.png.meta", + "Samples~/RebindingUI/Icons/PS4_Dpad_Left.png.meta: /ps4_dpad_left.png.meta", + "Samples~/RebindingUI/Icons/PS4_Dpad_Right.png.meta: /ps4_dpad_right.png.meta", + "Samples~/RebindingUI/Icons/PS4_Dpad_Up.png.meta: /ps4_dpad_up.png.meta", + "Samples~/RebindingUI/Icons/PS4_Dpad.png.meta: /ps4_dpad.png.meta", + "Samples~/RebindingUI/Icons/PS4_L1.png.meta: /ps4_l1.png.meta", + "Samples~/RebindingUI/Icons/PS4_L2.png.meta: /ps4_l2.png.meta", + "Samples~/RebindingUI/Icons/PS4_Left_Stick.png.meta: /ps4_left_stick.png.meta", + "Samples~/RebindingUI/Icons/PS4_Options.png.meta: /ps4_options.png.meta", + "Samples~/RebindingUI/Icons/PS4_R1.png.meta: /ps4_r1.png.meta", + "Samples~/RebindingUI/Icons/PS4_R2.png.meta: /ps4_r2.png.meta", + "Samples~/RebindingUI/Icons/PS4_Right_Stick.png.meta: /ps4_right_stick.png.meta", + "Samples~/RebindingUI/Icons/PS4_Share.png.meta: /ps4_share.png.meta", + "Samples~/RebindingUI/Icons/PS4_Square.png.meta: /ps4_square.png.meta", + "Samples~/RebindingUI/Icons/PS4_Triangle.png.meta: /ps4_triangle.png.meta", + "Samples~/RebindingUI/Icons/PS4_Circle.png: /ps4_circle.png", + "Samples~/RebindingUI/Icons/PS4_Cross.png: /ps4_cross.png", + "Samples~/RebindingUI/Icons/PS4_Dpad_Down.png: /ps4_dpad_down.png", + "Samples~/RebindingUI/Icons/PS4_Dpad_Left.png: /ps4_dpad_left.png", + "Samples~/RebindingUI/Icons/PS4_Dpad_Right.png: /ps4_dpad_right.png", + "Samples~/RebindingUI/Icons/PS4_Dpad_Up.png: /ps4_dpad_up.png", + "Samples~/RebindingUI/Icons/PS4_Dpad.png: /ps4_dpad.png", + "Samples~/RebindingUI/Icons/PS4_L1.png: /ps4_l1.png", + "Samples~/RebindingUI/Icons/PS4_L2.png: /ps4_l2.png", + "Samples~/RebindingUI/Icons/PS4_Left_Stick.png: /ps4_left_stick.png", + "Samples~/RebindingUI/Icons/PS4_Options.png: /ps4_options.png", + "Samples~/RebindingUI/Icons/PS4_R1.png: /ps4_r1.png", + "Samples~/RebindingUI/Icons/PS4_R2.png: /ps4_r2.png", + "Samples~/RebindingUI/Icons/PS4_Right_Stick.png: /ps4_right_stick.png", + "Samples~/RebindingUI/Icons/PS4_Share.png: /ps4_share.png", + "Samples~/RebindingUI/Icons/PS4_Square.png: /ps4_square.png", + "Samples~/RebindingUI/Icons/PS4_Triangle.png: /ps4_triangle.png" + ] + }, + "PVP-92-3": { + "errors": [ + "InputSystem/Plugins/Switch/SwitchProControllerHID.cs: .Switch.", + "InputSystem/Plugins/Switch/SwitchProControllerHID.cs: .Switch\n", + "InputSystem/Plugins/Switch/SwitchSupportHID.cs: .Switch\n", + "Documentation~/Gamepad.md: .Switch." + ] + }, + "PVP-124-2": { + "errors": [ + "Tests/TestFixture/Unity.InputSystem.TestFramework.asmdef", + "Samples~/CustomComposite/.sample.json", + "Samples~/CustomDevice/.sample.json", + "Samples~/CustomDeviceUsages/.sample.json", + "Samples~/GamepadMouseCursor/.sample.json", + "Samples~/InGameHints/.sample.json", + "Samples~/InputDeviceTester/.sample.json", + "Samples~/InputRecorder/.sample.json", + "Samples~/OnScreenControls/.sample.json", + "Samples~/RebindingUI/.sample.json", + "Samples~/SimpleDemo/.sample.json", + "Samples~/SimpleMultiplayer/.sample.json", + "Samples~/TouchSamples/.sample.json", + "Samples~/UIvsGameInput/.sample.json", + "Samples~/UnityRemote/.sample.json", + "Samples~/Visualizers/.sample.json" + ] + }, + "PVP-130-1": { + "errors": [ + "InputSystem/Plugins/InputForUI/InputSystemForUI.asmdef: assembly name does not match filename: Unity.InputSystem.ForUI", + "Tests/TestFixture/Unity.InputSystem.TestFramework.asmdef: file is not valid JSON", + "Samples~/UIvsGameInput/Unity.InputSystem.UIvsGameInput.asmdef: assembly name does not match filename: UnityEngine.InputSystem.Samples.UIvsGameInput", + "Samples~/Visualizers/Unity.InputSystem.Visualizers.asmdef: assembly name does not match filename: InputSystem.Samples.Visualizers" + ] + }, + "PVP-131-1": { + "errors": [ + "Samples~/ProjectWideActions/ProjectWideActions.asmdef: assembly name does not start with \"Unity.\": ProjectWideActions", + "Tests/TestFixture/Unity.InputSystem.TestFramework.asmdef: file is not valid JSON", + "Samples~/UIvsGameInput/Unity.InputSystem.UIvsGameInput.asmdef: assembly name does not start with \"Unity.\": UnityEngine.InputSystem.Samples.UIvsGameInput", + "Samples~/Visualizers/Unity.InputSystem.Visualizers.asmdef: assembly name does not start with \"Unity.\": InputSystem.Samples.Visualizers" + ] + }, + "PVP-132-1": { + "errors": [ + "Tests/TestFixture/Unity.InputSystem.TestFramework.asmdef: file is not valid JSON" + ] + }, + "PVP-133-1": { + "errors": [ + "InputSystem/Plugins/InputForUI/InputSystemForUI.asmdef: runtime assembly definition file not inside \"Runtime\" or \"Tests/Runtime\" directory", + "Samples~/ProjectWideActions/ProjectWideActions.asmdef: runtime assembly definition file not inside \"Runtime\" or \"Tests/Runtime\" directory", + "InputSystem/Unity.InputSystem.asmdef: runtime assembly definition file not inside \"Runtime\" or \"Tests/Runtime\" directory", + "Samples~/InGameHints/Unity.InputSystem.InGameHints.asmdef: runtime assembly definition file not inside \"Runtime\" or \"Tests/Runtime\" directory", + "Tests/IntegrationTests/Unity.InputSystem.IntegrationTests.asmdef: runtime assembly definition file not inside \"Runtime\" or \"Tests/Runtime\" directory", + "Samples~/RebindingUI/Unity.InputSystem.RebindingUI.asmdef: runtime assembly definition file not inside \"Runtime\" or \"Tests/Runtime\" directory", + "Samples~/InputRecorder/Unity.InputSystem.Recorder.asmdef: runtime assembly definition file not inside \"Runtime\" or \"Tests/Runtime\" directory", + "Tests/TestFixture/Unity.InputSystem.TestFramework.asmdef: file is not valid JSON", + "Samples~/UIvsGameInput/Unity.InputSystem.UIvsGameInput.asmdef: runtime assembly definition file not inside \"Runtime\" or \"Tests/Runtime\" directory", + "Samples~/Visualizers/Unity.InputSystem.Visualizers.asmdef: runtime assembly definition file not inside \"Runtime\" or \"Tests/Runtime\" directory" + ] + }, + "PVP-150-1": { + "errors": [ + "UnityEngine.InputSystem.InputSystem: onLayoutChange: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void RegisterLayout(Type, string, InputDeviceMatcher?): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void RegisterLayout(string, string, InputDeviceMatcher?): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void RegisterLayoutOverride(string, string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void RegisterLayoutBuilder(Func, string, string, InputDeviceMatcher?): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void RegisterPrecompiledLayout(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: string TryFindMatchingLayout(InputDeviceDescription): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: IEnumerable ListLayoutsBasedOn(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: InputControlLayout LoadLayout(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: InputControlLayout LoadLayout(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: string GetNameOfBaseLayout(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: bool IsFirstLayoutBasedOnSecond(string, string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: bool IsFirstLayoutBasedOnSecond(string, string): empty tag", + "UnityEngine.InputSystem.InputSystem: void RegisterProcessor(Type, string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void RegisterProcessor(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: onDeviceChange: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: onFindLayoutForDevice: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: InputDevice AddDevice(string, string, string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: TDevice AddDevice(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: InputDevice AddDevice(InputDeviceDescription): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void AddDevice(InputDevice): empty tag", + "UnityEngine.InputSystem.InputSystem: void AddDevice(InputDevice): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: InputDevice GetDevice(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: InputDevice GetDevice(string): empty tag", + "UnityEngine.InputSystem.InputSystem: InputDevice GetDevice(Type): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: InputDevice GetDevice(Type): empty tag", + "UnityEngine.InputSystem.InputSystem: TDevice GetDevice(InternedString): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void EnableDevice(InputDevice): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void ResetDevice(InputDevice, bool): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void SetDeviceUsage(InputDevice, string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void SetDeviceUsage(InputDevice, InternedString): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: InputControl FindControl(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: onEvent: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: onAnyButtonPress: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void QueueEvent(InputEventPtr): non-standard attribute 'cref' on ", + "UnityEngine.InputSystem.InputSystem: void QueueEvent(InputEventPtr): without required attribute 'name'", + "UnityEngine.InputSystem.InputSystem: void QueueEvent(InputEventPtr): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void QueueEvent(ref TEvent): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void QueueStateEvent(InputDevice, TState, double): empty tag", + "UnityEngine.InputSystem.InputSystem: void QueueStateEvent(InputDevice, TState, double): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputSystem: void QueueStateEvent(InputDevice, TState, double): empty tag", + "UnityEngine.InputSystem.InputSystem: void QueueDeltaStateEvent(InputControl, TDelta, double): empty tag", + "UnityEngine.InputSystem.InputSystem: void QueueDeltaStateEvent(InputControl, TDelta, double): empty tag", + "UnityEngine.InputSystem.InputSystem: void QueueDeltaStateEvent(InputControl, TDelta, double): empty tag", + "UnityEngine.InputSystem.Composites.AxisComposite: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Composites.AxisComposite: minValue: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Composites.AxisComposite: maxValue: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Processors.AxisDeadzoneProcessor: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Processors.AxisDeadzoneProcessor: empty tag", + "UnityEngine.InputSystem.Controls.ButtonControl: pressPoint: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Controls.ButtonControl: wasPressedThisFrame: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Composites.ButtonWithOneModifier: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Composites.ButtonWithTwoModifiers: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Processors.ClampProcessor: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Processors.ClampProcessor: empty tag", + "UnityEngine.InputSystem.Utilities.Vector2MagnitudeComparer: empty tag", + "UnityEngine.InputSystem.Utilities.Vector2MagnitudeComparer: mixed block and inline content in ; use instead of or wrap inline content in ", + "UnityEngine.InputSystem.Utilities.Vector3MagnitudeComparer: empty tag", + "UnityEngine.InputSystem.Utilities.Vector3MagnitudeComparer: mixed block and inline content in ; use instead of or wrap inline content in ", + "UnityEngine.InputSystem.DefaultInputActions: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Controls.DeltaControl: in top-level context; use instead", + "UnityEngine.InputSystem.Controls.DiscreteButtonControl: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.EnhancedTouch.EnhancedTouchSupport: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.LowLevel.GamepadState: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.Gamepad: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.HID.HID.UsagePage: text or XML content outside a top-level tag", + "UnityEngine.InputSystem.Interactions.HoldInteraction: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.IInputActionCollection2: int FindBinding(InputBinding, out InputAction): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.IInputInteraction: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.IInputInteraction: void Process(ref InputInteractionContext): empty tag", + "UnityEngine.InputSystem.IInputInteraction: void Process(ref InputInteractionContext): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.LowLevel.IInputStateCallbackReceiver: bool GetStateOffsetForEvent(InputControl, InputEventPtr, ref uint): empty tag", + "UnityEngine.InputSystem.InputAction: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: processors: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: interactions: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: actionMap: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: bindingMask: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: controls: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: inProgress: in top-level context; use instead", + "UnityEngine.InputSystem.InputAction: started: in top-level context; use instead", + "UnityEngine.InputSystem.InputAction: canceled: in top-level context; use instead", + "UnityEngine.InputSystem.InputAction: performed: in top-level context; use instead", + "UnityEngine.InputSystem.InputAction: .ctor(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: .ctor(string, InputActionType, string, string, string, string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: void Enable(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: TValue ReadValue(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: bool IsPressed(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: bool WasPressedThisFrame(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: bool WasReleasedThisFrame(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: bool WasPerformedThisFrame(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: bool WasCompletedThisFrame(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction: float GetTimeoutCompletionPercentage(): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction.CallbackContext: interaction: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction.CallbackContext: duration: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputAction.CallbackContext: void ReadValue(void*, int): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionAsset: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionAsset: devices: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionAsset: this[string]: unexpected ; use instead", + "UnityEngine.InputSystem.InputActionAsset: void LoadFromJson(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionAsset: InputActionAsset FromJson(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionAsset: InputAction FindAction(string, bool): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionAsset: bool IsUsableWithDevice(InputDevice): empty tag", + "UnityEngine.InputSystem.InputActionAsset: bool IsUsableWithDevice(InputDevice): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionMap: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionMap: devices: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionMap: this[string]: in top-level context; use instead", + "UnityEngine.InputSystem.InputActionMap: bool IsUsableWithDevice(InputDevice): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionMap: InputActionMap[] FromJson(string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: PrimitiveValue? GetParameterValue(InputAction, string, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: TValue? GetParameterValue(InputAction, Expression>, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyParameterOverride(InputAction, Expression>, TValue, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyParameterOverride(InputActionMap, Expression>, TValue, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyParameterOverride(InputActionAsset, Expression>, TValue, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyParameterOverride(InputActionMap, string, PrimitiveValue, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyParameterOverride(InputActionAsset, string, PrimitiveValue, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyParameterOverride(InputAction, string, PrimitiveValue, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: int GetBindingIndexForControl(InputAction, InputControl): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: string GetBindingDisplayString(InputAction, DisplayStringOptions, string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: string GetBindingDisplayString(InputAction, InputBinding, DisplayStringOptions): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: string GetBindingDisplayString(InputAction, int, DisplayStringOptions): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: string GetBindingDisplayString(InputAction, int, out string, out string, DisplayStringOptions): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyBindingOverride(InputAction, string, string, string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyBindingOverride(InputAction, InputBinding): in block context; use instead", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyBindingOverride(InputAction, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyBindingOverride(InputAction, int, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void ApplyBindingOverride(InputAction, int, string): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void RemoveBindingOverride(InputAction, InputBinding): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: int ApplyBindingOverridesOnMatchingControls(InputAction, InputControl): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: int ApplyBindingOverridesOnMatchingControls(InputActionMap, InputControl): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: string SaveBindingOverridesAsJson(IInputActionCollection2): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: string SaveBindingOverridesAsJson(InputAction): in block context; use instead", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void LoadBindingOverridesFromJson(IInputActionCollection2, string, bool): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: void LoadBindingOverridesFromJson(InputAction, string, bool): in block context (only allowed in top-level context)", + "UnityEngine.InputSystem.InputActionRebindingExtensions: RebindingOperation PerformInteractiveRebinding(InputAction, int): non-standard tag