XRFrame: getHitTestResultsForTransientInput() 方法

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

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

getHitTestResultsForTransientInput()XRFrame 接口的一个方法,它返回一个包含 XRTransientInputHitTestResult 对象的数组,这些对象包含给定 XRTransientInputHitTestSource 的瞬时输入命中测试结果。

语法

js
getHitTestResultsForTransientInput(hitTestSource)

参数

hitTestSource

一个 XRTransientInputHitTestSource 对象,其中包含瞬时输入命中测试订阅。

返回值

一个包含 XRTransientInputHitTestResult 对象的数组。

示例

获取瞬时输入命中测试结果

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

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

let transientHitTestSource = null;
xrSession
  .requestHitTestSourceForTransientInput({
    profile: "generic-touchscreen",
    offsetRay: new XRRay(),
  })
  .then((touchScreenHitTestSource) => {
    transientHitTestSource = touchScreenHitTestSource;
  });

// frame loop
function onXRFrame(time, xrFrame) {
  let hitTestResults = xrFrame.getHitTestResultsForTransientInput(
    transientHitTestSource,
  );
  // do things with the transient hit test results
}

规范

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

浏览器兼容性

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

另请参阅