XRRay

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

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

XRRayWebXR 设备 API 的一个接口,它代表一个由原点和方向向量描述的几何射线。

XRRay 对象可以传递给XRSession.requestHitTestSource()XRSession.requestHitTestSourceForTransientInput() 以执行碰撞测试。

构造函数

XRRay() 实验性

创建一个新的 XRRay 对象。

实例属性

XRRay.direction 只读 实验性

一个DOMPointReadOnly,代表射线的 3 维方向向量。

XRRay.matrix 只读 实验性

一个变换,可用于沿 XRRay 定位物体。这是一个 4x4 矩阵,以 16 个元素的Float32Array 表示,采用列主序。

XRRay.origin 只读 实验性

一个DOMPointReadOnly,代表射线发出的空间中的 3 维点,以米为单位。

实例方法

无。

示例

使用 XRRay 请求碰撞测试源

XRSession.requestHitTestSource() 方法在其 offsetRay 选项中接受一个 XRRay 对象。在本例中,碰撞测试源的位置略高于观察者,因为应用程序在底部有一些 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 碰撞测试模块
# xrray-interface

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅