XRHitTestResult
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Экспериментально: Это экспериментальная технология
Внимательно проверьте таблицу совместимости с браузерами таблицу совместимости с браузерами перед использованием в рабочей среде.
Интерфейс XRHitTestResult API устройств WebXR содержит единственный результат проверки попадания. Вы можете получить массив объектов XRHitTestResult для кадра, вызвав XRFrame.getHitTestResults().
Свойства экземпляра
Нет.
Методы экземпляра
-
XRHitTestResult.createAnchor()Экспериментально -
Возвращает
Promise, который разрешается с созданным из результата проверки попаданияXRAnchor. -
XRHitTestResult.getPose()Экспериментально -
Возвращает
XRPoseрезультата проверки попадания относительно заданного базового пространства.
Примеры
Получение объектов XRHitTestResult в цикле кадров
В дополнение к отображению XRHitTestResult в цикле кадров, этот пример демонстрирует несколько действий, которые необходимо выполнить перед запросом этого объекта. Во время настройки сессии укажите "hit-test" в качестве одного из requiredFeatures. Затем вызовите XRSession.requestHitTestSource() с желаемыми ссылками. (Получите их, вызвав XRSession.requestReferenceSpace().) Это возвращает XRHitTestSource. Вы будете использовать его в цикле кадров для получения объектов XRHitTestResult.
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
}
Получение положения результата проверки попадания
Используйте getPose() для запроса положения результата.
let hitTestResults = xrFrame.getHitTestResults(hitTestSource);
if (hitTestResults.length > 0) {
let pose = hitTestResults[0].getPose(referenceSpace);
}
Создание якоря из результата проверки попадания
После нахождения пересечений на реальных поверхностях с помощью проверки попадания, вы можете создать XRAnchor для прикрепления виртуального объекта к этому расположению.
hitTestResult.createAnchor().then(
(anchor) => {
// add anchored objects to the scene
},
(error) => {
console.error(`Could not create anchor: ${error}`);
},
);
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
XRHitTestResult |
81 | 81 | Нет | 68 | Нет | 81 | Нет | 58 | Нет | 13.0 | Нет |
createAnchor |
85 | 85 | Нет | 71 | Нет | 85 | Нет | 60 | Нет | 14.0 | Нет |
getPose |
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/XRHitTestResult