diff --git a/src/components/three/XRHudInWorld.tsx b/src/components/three/XRHudInWorld.tsx index d25dc86..a644c99 100644 --- a/src/components/three/XRHudInWorld.tsx +++ b/src/components/three/XRHudInWorld.tsx @@ -145,6 +145,15 @@ export function XRHudInWorld(props: XRHudInWorldProps) { wristRef.current.visible = false; } } + + // Head-locked fallback toggle — always visible in lower-left of FOV, + // so the user can reopen the menu even without controllers or if the + // panel is positioned out of view. + if (headLockRef.current) { + const offset = new THREE.Vector3(-0.18, -0.18, -0.5).applyQuaternion(camera.quaternion); + headLockRef.current.position.copy(camera.position).add(offset); + headLockRef.current.quaternion.copy(camera.quaternion); + } }); return (