XRTransientInputHitTestResult

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

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

WebXR 设备 APIXRTransientInputHitTestResult接口包含一组瞬态输入命中测试的结果,按输入源分组。

您可以通过调用XRFrame.getHitTestResultsForTransientInput()获取一帧的XRHitTestResult对象数组。

实例属性

XRTransientInputHitTestResult.inputSource 只读 实验性

表示用于计算results数组的XRInputSource

XRTransientInputHitTestResult.results 只读 实验性

表示一个XRHitTestResult对象数组,包含输入源的命中测试结果,按执行命中测试所用射线上的距离排序,最接近的结果位于位置 0。

实例方法

无。

示例

访问瞬态输入命中测试结果

使用两个数组来访问瞬态输入命中测试结果。首先,通过调用XRFrame.getHitTestResultsForTransientInput()获取XRTransientInputHitTestResult对象数组。其次,要获取某个输入源的实际XRHitTestResult对象,请取消引用XRTransientInputHitTestResult对象之一的results属性。

js
// frame loop
function onXRFrame(time, xrFrame) {
  let hitTestResults = xrFrame.getHitTestResultsForTransientInput(
    transientHitTestSource,
  );

  hitTestResults.forEach((resultsPerInputSource) => {
    resultsPerInputSource.results.forEach((hitTest) => {
      // do something with the hit test
      hitTest.getPose(referenceSpace);
    });
  });
}

过滤输入源

inputSource属性允许您按输入源筛选命中测试结果。

js
// frame loop
function onXRFrame(time, xrFrame) {
  let hitTestResults = xrFrame.getHitTestResultsForTransientInput(
    transientHitTestSource,
  );

  hitTestResults.forEach((resultsPerInputSource) => {
    if (resultsPerInputSource.inputSource === myPreferredInputSource) {
      // act on hit test results from the preferred input source
    }
  });
}

规范

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

浏览器兼容性

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

另请参阅