XRRigidTransform: свойство position
Ограниченная доступность
Это функция не относится к Baseline, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Только для чтения XRRigidTransform свойство position — это объект DOMPointReadOnly, который предоставляет 3D-точку, указанную в метрах, описывающую компонент перевода преобразования.
Значение
Только для чтения DOMPointReadOnly, указывающий 3D-компонент позиции матрицы преобразования. Единицы измерения — метры.
Примечание: Компонент w точки всегда равен 1,0.
Примеры
Для создания пространства отсчета, которое можно использовать для размещения объекта на уровне глаз (предполагая, что уровень глаз составляет 1,5 метра):
function onSessionStarted(xrSession) {
xrSession.addEventListener("end", onSessionEnded);
gl = initGraphics(xrSession);
const glLayer = new XRWebGLLayer(xrSession, gl);
xrSession.updateRenderState({ baseLayer: glLayer });
if (immersiveSession) {
xrSession
.requestReferenceSpace("bounded-floor")
.then((refSpace) => {
refSpaceCreated(refSpace);
})
.catch(() => {
session.requestReferenceSpace("local-floor").then(refSpaceCreated);
});
} else {
session.requestReferenceSpace("viewer").then(refSpaceCreated);
}
}
function refSpaceCreated(refSpace) {
xrReferenceSpace = immersiveSession
? refSpace
: refSpace.getOffsetReferenceSpace(new XRRigidTransform({ y: -1.5 }));
xrSession.requestAnimationFrame(onFrame);
}
После настройки графического контекста для использования WebXR, это начинается с проверки, существует ли переменная immersiveSession true; если да, то сначала запрашивается bounded-floor пространство отсчета. Если это не удается (вероятно, потому что bounded-floor не поддерживается), то запрашивается local-floor пространство отсчета.
Если мы не находимся в интерактивной сессии, то вместо этого запрашивается viewer пространство отсчета.
В любом случае, после получения пространства, оно передается в функцию refSpaceCreated(). Для интерактивных пространств указанное пространство сохраняется для дальнейшего использования. Однако для инлайновых сессий мы знаем, что мы находимся в пространстве, которое не автоматически настроено для уровня пола, поэтому мы запрашиваем пространство смещения отсчета, чтобы сместить высоту зрителя на 1,5 метра над предполагаемым уровнем пола в 0 метров. Это новое пространство отсчета используется вместо первоначально полученного.
Наконец, отправляется запрос на кадр анимации.
Спецификации
| Спецификация |
|---|
| API устройства WebXR # dom-xrrigidtransform-position |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
position |
79 | 79 | Нет | 66 | Нет | 79 | Нет | 57 | Нет | 11.2 | Нет |
© 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/XRRigidTransform/position