Search Issue Tracker
Fixed
Fixed in 2.3.0
Votes
0
Found in [Package]
2.1.0-pre.1
Issue ID
XRIT-35
Regression
No
[XRIT] HoverEntered/HoverExited of the interactable is outputted if DirectInteractor is not hovering over it
Steps to reproduce:
1. Open the attached user's project "XRInteractionToolkitDirectInteractorBugReport.zip"
2. Open a scene "BugReport_DirectInteractor_OnHoverEntered" and enter Play Mode
3. Move DirectInteractor (Sphere) onto an interactable (Cube)
4. Deactivate the "DirectInteractor" GameObject
5. Move "DirectInteractor" GameObject away from the interactable (Cube)
6. Activate the "DirectInteractor" GameObject
Expected results: HoverEntered/HoverExited of the interactable is not outputted if DirectInteractor is not hovering over it
Actual Results: HoverEntered/HoverExited of the interactable is outputted if DirectInteractor is not hovering over it (see attached video "Repro.mp4")
Reproducible on: XRIT 2.0.0 - 2.1.1 (2020.3.37f1, 2021.3.8f1, 2022.1.13f1, 2022.2.0b6, 2023.1.0a8)
Could not test below XRIT 2.0.0 due to package errors when downgrading
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
- [D3D12][XR] SRP Foveation foveated rendering on Windows platform not working when Graphics API is set to D3D12
- The Game view renders extremely saturated or almost black when FSR 1.0, HDR and DX12 are enabled
- Build error on Android when using Patch And Run paired with Play Asset Delivery
- "Browse" button for Xcode in the "Build Profiles" window is too big
- USS styles fail to inherit correctly when contentContainer is overridden in a custom control
Resolution Note (fix version 2.3.0):
We ended up finding a couple of issues leading to the behavior found in the ticket. We fixed a potential invalid stayed colliders list in XRDirectInteractor and XRSocketInteractor when the interactor is disabled while in contact with a collider. We also fixed hover and select events being incorrectly fired when an XRDirectInteractor or XRSocketInteractor GameObject (or component) is disabled while in contact with an interactable, moved away from the interactable, and then enabled again. Finally, we changed GetValidTargets on each interactor type to return an empty list when the interactor is disabled, hopefully preventing this from occurring.