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

瀏覽器相容性

另見