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

浏览器兼容性