XRSession: метод requestHitTestSourceForTransientInput()
Ограниченное использование
Эта функция не относится к Baseline, так как она не работает в некоторых из самых популярных браузеров.
Экспериментально: Это экспериментальная технология.
Перед использованием в рабочей среде внимательно ознакомьтесь с таблицей совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Метод requestHitTestSourceForTransientInput() интерфейса XRSession возвращает Promise, который разрешается объектом XRTransientInputHitTestSource, который можно передать в XRFrame.getHitTestResultsForTransientInput().
Синтаксис
requestHitTestSourceForTransientInput(options)
Параметры
options-
Объект, содержащий параметры конфигурации, а именно:
profile-
Строка, определяющая имя профиля входного источника временного входного источника, который будет использоваться для вычисления результатов проверки на соответствие.
entityTypesНеобязательно-
Array, определяющий типы объектов, которые будут использоваться для создания источника проверки на соответствие. Если тип сущности не указан, массив по умолчанию содержит один элемент с типомplane. Возможные типы:-
point: Вычисление результатов проверки на соответствие на основе обнаруженных характерных точек. -
plane: Вычисление результатов проверки на соответствие на основе обнаруженных реальных плоскостей. -
mesh: Вычисление результатов проверки на соответствие на основе обнаруженных мешей.
-
offsetRayНеобязательно-
Объект
XRRay, который будет использоваться для выполнения проверки на соответствие. Если объектXRRayне предоставлен, новый объектXRRayсоздаётся без параметров.
Возвращаемое значение
A Promise, который разрешается объектом XRTransientInputHitTestSource.
Исключения
Вместо того, чтобы выбрасывать истинные исключения, requestHitTestSourceForTransientInput() отклоняет возвращённый промис с DOMException, а именно, одним из следующих:
-
NotSupportedErrorDOMException -
Выбрасывается, если
hit-testне является включённой функцией вXRSystem.requestSession(). -
InvalidStateErrorDOMException -
Выбрасывается, если сессия уже завершена.
-
NotAllowedErrorDOMException -
Выбрасывается, если запросов слишком много. Некоторые пользовательские агенты могут ограничить использование по причинам конфиденциальности.
Примеры
Запрос временного источника проверки на соответствие
Чтобы запросить источник проверки на соответствие, начните XRSession с включённой функцией hit-test сессии. Далее, настройте источник проверки на соответствие и сохраните его для последующего использования в цикле кадров и вызовите XRFrame.getHitTestResultsForTransientInput() для получения результата.
const xrSession = navigator.xr.requestSession("immersive-ar", {
requiredFeatures: ["local", "hit-test"],
});
let transientHitTestSource = null;
xrSession
.requestHitTestSourceForTransientInput({
profile: "generic-touchscreen",
offsetRay: new XRRay(),
})
.then((touchScreenHitTestSource) => {
transientHitTestSource = touchScreenHitTestSource;
});
// frame loop
function onXRFrame(time, xrFrame) {
let hitTestResults = xrFrame.getHitTestResultsForTransientInput(
transientHitTestSource,
);
// do things with the transient hit test results
}
Спецификации
| Спецификация |
|---|
| Модуль проверки на соответствие WebXR # dom-xrsession-requesthittestsourcefortransientinput |
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
requestHitTestSourceForTransientInput |
81 | 81 | Нет | 68 | Нет | 81 | Нет | 58 | Нет | 13.0 | Нет |
См. также
© 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/requestHitTestSourceForTransientInput