Skip to content

2a - Item grabbing on XRI: near and distance grab, hover, throw - #427

Merged
JaXt0r merged 2 commits into
engine/hvr-replacementfrom
engine/hvr-replacement-2a
Oct 23, 2026
Merged

JaXt0r merged 2 commits into
engine/hvr-replacementfrom
engine/hvr-replacement-2a

Conversation

@JaXt0r

@JaXt0r JaXt0r commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Merge order: 1a → 1b → 1c → 1d → 2a → 2b → 3a → 3b → 3c, all into engine/hvr-replacement (no stacking). Each branch still contains the commits of the earlier steps, so after the earlier PR is merged the diff of this one shrinks to its own step. Plan: Docs/HVR-replacement/.

Description

Phase 2a: item grabbing on the Xri backend (needs 1x). Default backend stays Hvr.

  • A NearFarInteractor per hand (direct grab, distance grab that pulls the item to the hand, UI pointing on the same ray) replaces the 1c UI-only rays. Own line-of-sight filter, 10 m range.
  • GothicGrabInteractable (velocity tracking, two hands, throw) + XriInteractableBridge on oCItem raise the same VrInteractable events as HVR (BeforeGrabbed, Grabbed, Released, hover). Only the active backend's bridge runs.
  • Grabbing/hovering is switched off while swimming. A small sphere per controller is the stand-in hand (hands are Phase 5, on hold).

To test

  • - Hvr: grab, throw and distance-grab items exactly as before.
  • - Xri: grab an item with each hand; distance grab pulls it into the hand (label appears on hover).
  • - Xri: grab with both hands, release one → still held; drop → falls normally.
  • - Xri: a wall between hand and item prevents hover/grab.
  • - Xri: swim → no hover/grab; leave water → works again.
  • - Xri: menu laser still works.
  • Known: grabbed world items add 0 to the inventory on both backends (Amount is 0, see Docs/HVR-replacement/found-bugs.md). Throw feel is XRI default, not tuned. Every loaded item is processed by XRI each frame → check frame time on Quest in item-dense places.

Test on (delete if irrelevant)

  • PCVR
  • Mobile VR (Quest/Pico)

🤖 Generated with Claude Code

…er hand (direct grab, distance grab pulled to the hand with line-of-sight check, UI pointing on the same ray), GothicGrabInteractable (velocity tracking, two hands, throw) and XriInteractableBridge on oCItem raising the VrInteractable events (inventory, ghost layer, hover label); swimming disables grabbing and hovering; small sphere as interim hand visual (HVR phase 2a). No player-visible change on the default Hvr backend.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JaXt0r JaXt0r mentioned this pull request Oct 23, 2026
@JaXt0r
JaXt0r merged commit bacadf0 into engine/hvr-replacement Oct 23, 2026
@JaXt0r
JaXt0r deleted the engine/hvr-replacement-2a branch October 23, 2026 17:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant