Search Issue Tracker
By Design
By Design in 1.4.X
Votes
0
Found in [Package]
1.0.0
1.4.4
Issue ID
ISXB-391
Regression
No
[Input System] anyKey.wasReleasedThisFrame return true only when the last button was released
Steps to reproduce:
1. Open the attached “InputAnyKey” project
2. Open “SampleScene” scene
3. Enter Play Mode
4. Observe the Console window while pressing and holding, then releasing multiple buttons
Expected result: Prints true every time the button is released
Actual result: Prints true only for the last released button
Reproducible with: 1.0.2 (2021.3.16f1), 1.2.0(2021.3.16f1), 1.4.4 (2020.3.43f1, 2021.3.16f1, 2022.2.1f1, 2023.1.0a24)
Reproduced on: macOS Monterey 12.2 (Intel)
Note: The issue is reproducible in an Editor and in a build
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
- The Up, Down and other Buttons in a Style Sheet's Inspector unselect items when they are clicked while they are disabled
- Virtual Player remains active and still launches when removed from Additional Editor Instances from a custom Play Mode Scenario
- UI Toolkit Editor Window Creator becomes not interactable and greyed out when a long name is entered
- [Web][iOS] Web Player keeps restarting on launch when Native C/C++ Multithreading is enabled
- "Add Scene to Scenes in Build" pop-up reappears after Scene has already been added and another Multiplayer Editor Instance is loaded
Resolution Note:
The anyKey is a 'synthetic control' that is activated when one or more keys are pressed
(see https://docs.unity3d.com/Packages/com.unity.inputsystem@1.6/manual/Keyboard.html#controls)
Therefore it will only return true for wasReleasedThisFrame when there are no longer any keys pressed. This is what is correctly occurring.
The phrasing of the code anyKey.wasReleasedThisFrame can lead a reader to believe it would be triggered when 'an individual key is released' but that is not the case. This is therefore working as designed.
Resolution Note (1.4.X):
The anyKey is a 'synthetic control' that is activated when one or more keys are pressed
(see https://docs.unity3d.com/Packages/com.unity.inputsystem@1.6/manual/Keyboard.html#controls)
Therefore it will only return true for wasReleasedThisFrame when there are no longer any keys pressed. This is what is correctly occurring.
The phrasing of the code anyKey.wasReleasedThisFrame can lead a reader to believe it would be triggered when 'an individual key is released' but that is not the case. This is therefore working as designed.