XRTransientInputHitTestResult

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

XRTransientInputHitTestResult 接口属于 WebXR Device API,它包含一个按输入源分组的、用于瞬时输入命中测试结果的数组。

您可以通过调用 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 Hit Test 模块
# xr-transient-input-hit-test-result-interface

浏览器兼容性

另见