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 Device API # dom-xrrigidtransform-position |
浏览器兼容性
加载中…