Если коротко:

Лазерный указатель VR-интерфейса строится из pose источника, raycast и action выбора. Попадание луча переводит цель в hover, нажатие запускает select, а отдельное действие может вызвать activate. Пользователь должен видеть направление, доступную цель и подтверждение нажатия; UI и объекты мира требуют явного приоритета, чтобы один ввод не активировал две цели.

VR UI laser pointer состоит из направления руки или взгляда, raycast и input action. Видимая линия — лишь обратная связь: без цели и привязанной button она ничего не нажимает.

От луча до события

Ray interactor формирует луч и попадания. Ближайшая цель получает hover. Select начинает выбор, а activate вызывает дополнительную функцию выбранной цели. Названия API зависят от версии.

OpenXR отделяет action от физической button: runtime связывает select с доступным controller. Не зашивайте одну кнопку как единственный ввод.

UI и объекты мира

В Unity world-space Canvas использует Tracked Device Graphic Raycaster и XR UI Input Module. Для 3D interactable работает физический raycast. Задайте masks, blocking и правило ближайшего попадания, чтобы UI не выбрал предмет за панелью.

Архитектура Interactor/Interactable разобрана в статье об XRI, а bindings — в материале об OpenXR.

Визуальная обратная связь

Показывайте ray только когда он полезен. Меняйте reticle при попадании, обозначайте disabled state и подтверждайте select звуком либо haptic. Hover не должен выглядеть как нажатие.

Для доступности увеличьте hit area, сгладьте дрожание, предложите dwell select и controller navigation. Не полагайтесь только на цвет; проверьте интерфейс обеими руками.

Проверьте направление pointer, цель в фокусе, способ выбора и результат select.

Поделиться:TelegramВКонтакте

Источники

  1. Unity XRI: XR Ray Interactor
  2. Unity XRI: UI interaction setup
  3. Khronos: OpenXR Specification — Input and Haptics