Search Issue Tracker
By Design
Votes
1
Found in [Package]
1.14.0
Issue ID
ISXB-1528
Regression
No
The New Input System is not detecting clicks when under heavy load
Reproduction steps:
1. Open the attached project "ReproProj"
2. Open the "/Assets/Scenes/Main.unity" Scene
3. Enter the Play Mode
4. Fast click "W","A","S" and "D" keys
Expected result: Only the green circle is present
Actual result: Red and green circles are present
Reproducible with: 1.11.2 (2022.3.60f1), 1.14.0 (2022.3.61f1, 6000.0.47f1, 6000.1.0b15, 6000.2.0a9)
Reproducible on:
Play Mode
Windows Standalone Player
Testing environment: Windows 10 Enterprise 21H2
Not reproducible on: No other environment tested
Notes:
- The red circle is the New Input System
- The green circle is the Old Input System
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Opening Terrain Prefab in Prefab Editing Mode throws "NullReferenceException" error
- [Search] Dragging query pills put them behind the search text field
- A CustomPropertyDrawer that returns a PropertyField for a property named the same as a child field will not render all child fields
- Graphics Settings shows default values instead of the real values in the Rendering Debugger when Volume.profile is assigned via script
- Deleting multiple Tags throws “NullReferenceException”, and "Retrieving array element that was out of bounds" errors when holding the Enter key
Resolution Note:
The current implementation in the input system is by design.
You can however achieve similar results if they would like to receive input under load.
I investigated the issue and the project you provided quite thoroughly.
This is not a bug and rather a feature of the old input manager that we do not want to have in the new input system.
If you want to have similar behavior in the input system you can listen for events instead as these provide the delta change.
Example:
m_Controls.gameplay.move.performed += (callbackContext) => Sum(callbackContext.ReadValue<Vector2>());
This will allow for similar movement when quick tapping.
Doc’s here:
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.5/manual/Actions.html#using-actions
The old input manager used to cache keyboard quick presses, to know if it was pressed this frame and then applied the keypress once the frame had finished, we don’t want this approach in the new system as there are other ways to achieve this.
If you compare both the input manager and input system with a gamepad or mouse you in the demo project you will see they act similarly. Just for key presses they differ due to the old input system caching.
Other doc’s that may be useful for you:
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.2/api/UnityEngine.InputSystem.InputAction.html#UnityEngine_InputSys[…]_WasPressedThisFrame
I hope this helps!
Darren