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 |
瀏覽器相容性
載入中…