XRRigidTransform:position 属性
只读的XRRigidTransform
属性position
是一个DOMPointReadOnly
对象,它提供了一个以米为单位的 3D 点,描述了变换的平移分量。
值
一个只读的DOMPointReadOnly
,表示变换矩阵的 3D 位置分量。单位为米。
注意:点的w
分量始终为 1.0。
示例
要创建一个参考空间,该空间可用于将对象放置在眼睛高度(假设眼睛高度为 1.5 米)
js
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()
函数。对于沉浸式空间,指定的空间将保存以供将来使用。但是,对于内联会话,我们知道我们处于一个不会自动调整地板高度的空间,因此我们请求一个偏移参考空间,将观察者的高度从假定的 0 米地板高度向上移动 1.5 米。新的参考空间将代替最初接收到的参考空间使用。
最后,提交一个动画帧请求。
规范
规范 |
---|
WebXR 设备 API # dom-xrrigidtransform-position |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。