Search Issue Tracker
Fixed in 2.0.0-pre.1
Votes
0
Found in [Package]
1.0.0-pre.5
Issue ID
1358578
Regression
No
[XR] Unable to attach XRGrabInteractable to XRSocketInteractor after interacting with Teleportation Area
Reproduction steps:
1. Open the user's attached "Case#XRinteractiveKit.zip" project
2. Load the "testCase" scene
3. Enter Play mode
4. Teleport to interactable objects
5. Grab the "KinematicCube (3)" GameObject with XR Controller
6. Place the sphere on the cube into Teleportation Area (Floor)
7. Grab the Jigsaw GameObject and try attaching it to the sphere
Expected result: the GameObject is attached to the Socket Interactor
Actual result: a red Hover mesh appears indicating that the GameObject cannot be attached (see "3xjOI9POrN.mp4")
Reproducible with: XR Interaction Toolkit 1.0.0-pre.5 (2019.4.30f1, 2020.3.17f1, 2021.1.18f1, 2021.2.0b9, 2022.1.0a6)
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
- [Dragon Crashers] Build fails in U6
- [Dragon Crashers] 4 Shader error messages on import
- [Dragon Crashers] Readme text is white on light grey
- Cursor stays in front of the first character when entering text in the TextMeshPro field
- Searching in Hierarchy causes unwanted component calls
Resolution Note (fix version 2.0.0-pre.1):
The problem was that Interactor selections do not automatically deselect when the Interactable is no longer in the valid targets list returned by the Interactor. When the Socket Interactor touched the Teleportation Area Interactable, it would select it and remain so even when moving the socket away from it.
The property keepSelectedTargetValid from XRRayInteractor was moved into the base class in 2.0.0-pre.1 so that logic can be controlled by other interactors, such as the XRSocketInteractor. To fix the issue with that version of the package, the Socket should disable that setting by unchecking it in the Inspector window.
As a workaround until that version is released, you can use the Interaction Layer Mask to prevent the socket from interacting with the teleportation area. You can also derive from XRSocketInteractor and override the CanSelect method to check that the selected object is still contained within the valid targets list.