XRRay

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

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

XRRay 接口是 WebXR 设备 API 的一部分,它由一个起始点和一个方向向量描述了一个几何射线。

XRRay 对象可以传递给 XRSession.requestHitTestSource()XRSession.requestHitTestSourceForTransientInput() 来执行命中测试。

构造函数

XRRay() 实验性

创建一个新的 XRRay 对象。

实例属性

XRRay.direction 只读 实验性

一个表示射线 3 维方向向量的 DOMPointReadOnly

XRRay.matrix 只读 实验性

一个变换,可用于沿 XRRay 定位对象。这是一个 4x4 矩阵,以列主序的形式给出,存储在 16 个元素的 Float32Array 中。

XRRay.origin 只读 实验性

一个表示射线在空间中 3 维起始点(单位为米)的 DOMPointReadOnly

实例方法

无。

示例

使用 XRRay 请求命中测试源

XRSession.requestHitTestSource() 方法接受一个 XRRay 对象作为其 offsetRay 选项。在此示例中,命中测试源位于查看器稍上方,因为应用程序底部有一些 UI 元素,同时希望保持中心光标的感知。

js
const xrSession = navigator.xr.requestSession("immersive-ar", {
  requiredFeatures: ["local", "hit-test"],
});

let hitTestSource = null;

xrSession
  .requestHitTestSource({
    space: viewerSpace, // obtained from xrSession.requestReferenceSpace("viewer");
    offsetRay: new XRRay({ y: 0.5 }),
  })
  .then((viewerHitTestSource) => {
    hitTestSource = viewerHitTestSource;
  });

规范

规范
WebXR Hit Test 模块
# xrray-interface

浏览器兼容性

另见