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, а именно, одним из следующих:
-
NotSupportedErrorDOMException -
Выбрасывается, если
hit-testне является включенной функцией вXRSystem.requestSession(). -
InvalidStateErrorDOMException -
Выбрасывается, если сессия уже завершена.
-
NotAllowedErrorDOMException -
Выбрасывается, если количество запросов чрезмерно. Некоторые браузеры могут ограничивать использование по соображениям конфиденциальности.
Примеры
Запрос источника определения попадания
Для запроса источника определения попадания запустите 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
}
Спецификации
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | Нет |
См. также
© 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