🚀 Auto-deploy: melhoria no snap e medição AR em 24/05/2026 16:24:21

This commit is contained in:
2026-05-24 16:24:21 +00:00
parent 00a8cee511
commit 06556c7a45
+19 -7
View File
@@ -74,20 +74,32 @@ export function XRHudInWorld(props: XRHudInWorldProps) {
const headLockRef = useRef<THREE.Group>(null);
const targetPos = useRef(new THREE.Vector3());
const targetQuat = useRef(new THREE.Quaternion());
const lastABtn = useRef(false);
const [showQuickMenu, setShowQuickMenu] = useState(true);
const lastXBtn = useRef(false);
const lastYBtn = useRef(false);
/** Cached offset from controller to panel at drag start. */
const dragOffsetPos = useRef(new THREE.Vector3());
const dragOffsetQuat = useRef(new THREE.Quaternion());
const dragInitialized = useRef(false);
useFrame(() => {
// Toggle via left A button (Quest Touch buttons[4])
const gp = leftCtrl?.inputSource?.gamepad;
if (gp) {
const aBtn = gp.buttons[4];
const pressed = !!aBtn?.pressed;
if (pressed && !lastABtn.current) setOpen(!open);
lastABtn.current = pressed;
// Toggle quick menu via left X button (Quest Touch buttons[4] on left controller)
const xBtn = gp.buttons[4];
const pressedX = !!xBtn?.pressed;
if (pressedX && !lastXBtn.current) {
setShowQuickMenu((prev) => !prev);
}
lastXBtn.current = pressedX;
// Toggle main HUD via left Y button (Quest Touch buttons[5] on left controller)
const yBtn = gp.buttons[5];
const pressedY = !!yBtn?.pressed;
if (pressedY && !lastYBtn.current) {
setOpen(!open);
}
lastYBtn.current = pressedY;
}
// Floating panel:
@@ -171,7 +183,7 @@ export function XRHudInWorld(props: XRHudInWorldProps) {
<>
<WristToggle ref={wristRef} open={open} onToggle={() => setOpen(!open)} />
{/* Head-locked fallback: always-visible quick controls in lower-right of FOV */}
<group ref={headLockRef} renderOrder={999}>
<group ref={headLockRef} renderOrder={999} visible={showQuickMenu}>
<XR3DButton position={[0, 0.026, 0]} size={[0.07, 0.022]}
label={open ? '✕ Menu' : '☰ Menu'} active={open}
onClick={() => { setOpen(!open); reanchorRequested.current = true; }}