XRFrame:getHitTestResults() 方法

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

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

XRFrame 接口的 getHitTestResults() 方法返回一个 XRHitTestResult 对象数组,其中包含给定 XRHitTestSource 的命中测试结果。

语法

js
getHitTestResults(hitTestSource)

参数

hitTestSource

一个 XRHitTestSource 对象,包含命中测试订阅。

返回值

一个 XRHitTestResult 对象数组。

示例

获取命中测试结果

要请求命中测试源,请启动一个启用了 hit-test 会话功能的 XRSession。接下来,使用 XRSession.requestHitTestSource() 请求命中测试源并将其存储以供以后在帧循环中使用。最后,调用 getHitTestResults() 获取结果。

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
}

规范

规范
WebXR 命中测试模块
# dom-xrframe-gethittestresults

浏览器兼容性

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

另请参阅