XRSession: requestReferenceSpace() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

XRSession 介面的 requestReferenceSpace() 方法返回一個 promise,該 promise 會根據請求的參考空間型別,解析為 XRReferenceSpaceXRBoundedReferenceSpace 例項。

語法

js
requestReferenceSpace(referenceSpaceType)

引數

type

一個字串,指定要返回其例項的參考空間型別。字串必須是下面的值之一。

返回值

一個 Promise,它解析為一個 XRReferenceSpace 物件。

參考空間型別列在下面,並附有其用例和用於實現它們的介面的簡要資訊。

有界地板

一個 XRBoundedReferenceSpace,類似於 local 型別,但使用者預計不會超出由返回物件中的 boundsGeometry 給出的預定邊界。

local

一個 XRReferenceSpace 跟蹤空間,其原生原點位於會話建立時檢視器的位置附近。確切位置取決於底層平臺和實現。使用者不應該超出其起始位置太多(如果會移動的話),並且跟蹤針對此用例進行了最佳化。對於具有六個自由度 (6DoF) 跟蹤的裝置,local 參考空間會嘗試使原點相對於環境保持穩定。

區域性地板

一個 XRReferenceSpace,類似於 local 型別,但起始位置被放置在對檢視者來說安全站立的位置,此時 y 軸的值在地面水平處為 0。如果不知道地面水平,使用者代理會估算地面水平。如果估算的地面水平非零,則瀏覽器應將其舍入以避免指紋識別(可能捨入到最接近的釐米)。

無界

一個 XRReferenceSpace 跟蹤空間,允許使用者完全自由移動,可能從其原點非常遠的距離。使用者根本不會被跟蹤;跟蹤針對使用者當前位置附近的穩定性進行了最佳化,因此原生原點可以根據需要漂移以適應此需求。

檢視器

一個 XRReferenceSpace 跟蹤空間,其原生原點跟蹤檢視者的位置和方向。這用於使用者可以物理移動的環境,並得到所有 XRSession 例項(沉浸式和內聯)的支援,儘管它對內聯會話最有用。當確定檢視者與輸入之間的距離或使用偏移空間時,它特別有用。否則,通常會更頻繁地使用其他參考空間型別。

異常

requestReferenceSpace() 不會丟擲真正的異常,而是會拒絕返回的 promise,並使用下面的列表中的名稱的 DOMException

NotSupportedError

請求的參考空間不受支援。

規範

規範
WebXR Device API
# dom-xrsession-requestreferencespace

瀏覽器相容性