Search Issue Tracker
By Design
Votes
0
Found in [Package]
1.1.1
Issue ID
ISXB-33
Regression
Yes
Virtual cursor does not follow actual cursor when using Input System
Reproduction steps:
1. Open the user's attached project
2. Make sure the reproducible version of the Input System package is installed on the project
3. Enter Play mode
4. Press ESC to open a custom menu and move the cursor around
Expected result: The virtual cursor follows the actual cursor
Actual result: The virtual cursor does not move
Reproducible with: 1.1.1 (2021.2.3f1), 1.2.0 (2022.1.0a15)
Not reproducible with: 1.0.2 - 1.1.0-pre.5 (2021.2.0f1)
Couldn't test with: 1.0.2 (2019.4.33f1, 2020.3.23f1) (Downgrading issues), 1.1.0-pre.6 (2021.2.0f1) (Package errors prevent reproduction)
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
- Spot Light with 'Box' Shape stops working when it collides with Mesh
- Accepting Asset Store EULA endless loop in Package Manager window
- “InvalidOperationException: Sequence contains no matching element“ error when reenabling a custom Debug Draw Mode
- Prefab that contains a layout group is marked as changed by the Editor when opened
- Emission animation does not appear when the "Emission Map" parameter is set to black in a Lit material
Resolution Note:
The virtual mouse in the repro project uses the MouseMove action to get delta values from the system mouse, but adding a virtual mouse device causes MouseMove to rebind to the virtual mouse delta as well, so mouse move now has two delta bindings. Subsequent calls to MouseMove.ReadValue() end up reading values from the virtual mouse instead of the system one, because it becomes the control driving the action when you first call InputState.Change(...). There are two solutions:
- Change the action type of the MouseMove action to passthrough. This will work but is really dependent on the order that the bindings are processed, so it's a bit brittle
- Read the mouse delta from the system mouse using Mouse.current.delta.ReadValue(), and pass that into the UpdateMotion method instead of reading it from the input action.