XRSession:requestReferenceSpace() 方法
requestReferenceSpace()
是 XRSession
接口的一个方法,它返回一个 Promise
,该 Promise 解析为 XRReferenceSpace
或 XRBoundedReferenceSpace
的实例,具体取决于请求的参考空间类型。
语法
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 表格仅在浏览器中加载