XRSession:requestReferenceSpace() 方法

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表格

安全上下文: 此功能仅在 安全上下文(HTTPS)中可用,在某些或所有 支持的浏览器 中。

requestReferenceSpace()XRSession 接口的一个方法,它返回一个 Promise,该 Promise 解析为 XRReferenceSpaceXRBoundedReferenceSpace 的实例,具体取决于请求的参考空间类型。

语法

js
requestReferenceSpace(referenceSpaceType)

参数

type

一个字符串,指定要返回实例的参考空间类型。该字符串必须是以下值之一。

返回值

一个 Promise,它解析为一个 XRReferenceSpace 对象。

参考空间类型列出如下,并附有关于其用例以及用于实现它们的接口的简要信息。

bounded-floor

一个 XRBoundedReferenceSpace,类似于 local 类型,但用户不希望移动到预定边界之外,该边界由返回对象中的 boundsGeometry 给出。

local

一个XRReferenceSpace跟踪空间,其原生原点位于会话创建时查看者位置附近。确切位置取决于底层平台和实现。用户预计不会超出其起始位置太多(如果有的话),并且跟踪针对此用例进行了优化。对于具有六自由度 (6DoF) 跟踪的设备,local 参考空间会尝试保持原点相对于环境的稳定。

local-floor

一个XRReferenceSpace,类似于local类型,但起始位置放置在查看者可以安全站立的位置,其中y轴的值在楼层高度为0。如果不知道楼层高度,则用户代理将估计楼层高度。如果估计的楼层高度非零,则浏览器预计会将其四舍五入,以避免指纹识别(可能四舍五入到最近的一厘米)。

unbounded

一个XRReferenceSpace跟踪空间,允许用户完全自由移动,可能从其原点出发移动极长的距离。查看器根本没有被跟踪;跟踪针对用户当前位置周围的稳定性进行了优化,因此原生原点可能会根据需要漂移以满足该需求。

viewer

一个XRReferenceSpace跟踪空间,其原生原点跟踪查看者的位置和方向。这用于用户可以物理移动的环境中,并且受所有XRSession实例(沉浸式和内联)的支持,尽管它对内联会话最有用。在确定查看者与输入之间的距离或使用偏移空间时,它特别有用。否则,通常会更频繁地使用其他参考空间类型之一。

异常

requestReferenceSpace() 不会抛出真正的异常,而是使用一个DOMException拒绝返回的promise,其名称在下面的列表中找到

NotSupportedError

请求的参考空间不受支持。

规范

规范
WebXR 设备 API
# dom-xrsession-requestreferencespace

浏览器兼容性

BCD 表格仅在浏览器中加载