Spec-Zone.ru › Web APIs

XRSession: метод requestHitTestSource()

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Экспериментально: Это экспериментальная технология
Перед использованием в рабочей среде внимательно изучите таблицу совместимости браузеров.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Метод requestHitTestSource() интерфейса XRSession возвращает Promise, который разрешается объектом XRHitTestSource, который можно передать в XRFrame.getHitTestResults().

Синтаксис

requestHitTestSource(options)

Параметры

options

Объект с параметрами конфигурации, а именно:

space

XRSpace, который будет отслеживаться источником определения попадания.

entityTypes Необязательно

Array, определяющий типы сущностей, которые будут использоваться для создания источника определения попадания. Если тип сущности не указан, массив по умолчанию содержит единственный элемент с типом plane. Возможные типы:

  • point: Вычисление результатов определения попадания на основе характерных точек, обнаруженных.
  • plane: Вычисление результатов определения попадания на основе обнаруженных реальных плоскостей.
  • mesh: Вычисление результатов определения попадания на основе обнаруженных мешей.
offsetRay Необязательно

Объект XRRay, используемый для выполнения определения попадания. Если объект XRRay не предоставлен, новый объект XRRay создается без параметров.

Возвращаемое значение

A Promise, который разрешается объектом XRHitTestSource.

Исключения

Вместо генерации истинных исключений, requestHitTestSource() отклоняет возвращенное promise с DOMException, а именно, одним из следующих:

NotSupportedError DOMException

Выбрасывается, если hit-test не является включенной функцией в XRSystem.requestSession().

InvalidStateError DOMException

Выбрасывается, если сессия уже завершена.

NotAllowedError DOMException

Выбрасывается, если количество запросов чрезмерно. Некоторые браузеры могут ограничивать использование по соображениям конфиденциальности.

Примеры

Запрос источника определения попадания

Для запроса источника определения попадания запустите XRSession с включенной функцией сессии hit-test. Затем настройте источник определения попадания и сохраните его для последующего использования в цикле обработки кадров, и вызовите XRFrame.getHitTestResults() для получения результата.

const xrSession = navigator.xr.requestSession("immersive-ar", {
  requiredFeatures: ["local", "hit-test"],
});

let hitTestSource = null;

xrSession
  .requestHitTestSource({
    space: viewerSpace, // obtained from xrSession.requestReferenceSpace("viewer");
    offsetRay: new XRRay({ y: 0.5 }),
  })
  .then((viewerHitTestSource) => {
    hitTestSource = viewerHitTestSource;
  });

// frame loop
function onXRFrame(time, xrFrame) {
  let hitTestResults = xrFrame.getHitTestResults(hitTestSource);

  // do things with the hit test results
}

Спецификации

Спецификация
Модуль WebXR определения попадания
# dom-xrsession-requesthittestsource

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
requestHitTestSource 81 81 Нет 68 Нет 81 Нет 58 Нет 12.1 Нет

См. также

  • XRSession.requestHitTestSourceForTransientInput()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRSession/requestHitTestSource

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API