XRTransientInputHitTestSource

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

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

XRTransientInputHitTestSourceWebXR 设备 API中的一个接口,用于处理短暂输入命中测试订阅。您可以通过调用XRSession.requestHitTestSourceForTransientInput()来获取XRTransientInputHitTestSource对象。

此对象本身不包含短暂输入命中测试结果,但它用于通过调用XRFrame.getHitTestResultsForTransientInput()为每个XRFrame计算命中测试,该方法返回XRTransientInputHitTestResult对象。

实例属性

无。

实例方法

XRTransientInputHitTestSource.cancel() 实验性

取消短暂输入命中测试订阅。

示例

为会话获取XRTransientInputHitTestSource对象

使用XRSession.requestHitTestSourceForTransientInput()方法获取短暂输入命中测试源。

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
}

取消订阅短暂输入命中测试

要取消订阅短暂输入命中测试源,请使用XRTransientInputHitTestSource.cancel()方法。由于该对象将不再可用,因此您可以清理并设置XRTransientInputHitTestSource对象为null

js
transientHitTestSource.cancel();
transientHitTestSource = null;

规范

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

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅