XRHitTestSource

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

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

XRHitTestSourceWebXR 设备 API中的一个接口,用于处理命中测试订阅。可以使用XRSession.requestHitTestSource()方法获取 XRHitTestSource 对象。

此对象本身不包含命中测试结果,但它用于为每个XRFrame计算命中测试,方法是调用XRFrame.getHitTestResults(),该方法返回XRHitTestResult对象。

实例属性

无。

实例方法

XRHitTestSource.cancel() 实验性

取消订阅命中测试。

示例

获取会话的 XRHitTestSource 对象

调用XRSession.requestHitTestSource()以获取命中测试源。

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;
  });

// frame loop
function onXRFrame(time, xrFrame) {
  let hitTestResults = xrFrame.getHitTestResults(hitTestSource);

  // do things with the hit test results
}

取消订阅命中测试

要取消订阅命中测试源,请调用XRHitTestSource.cancel()。由于该对象将不再可用,因此可以清理并将 XRHitTestSource 对象设置为null

js
hitTestSource.cancel();
hitTestSource = null;

规范

规范
WebXR 命中测试模块
# hit-test-source-interface

浏览器兼容性

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

另请参阅