XRFrame: getHitTestResults() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

XRFrame 介面的 getHitTestResults() 方法返回一個 XRHitTestResult 物件陣列,其中包含給定 XRHitTestSource 的命中測試結果。

語法

js
getHitTestResults(hitTestSource)

引數

hitTestSource

一個 XRHitTestSource 物件,其中包含命中測試訂閱。

返回值

一個 XRHitTestResult 物件陣列。

示例

獲取命中測試結果

要請求一個命中測試源,請啟用 hit-test 會話功能來啟動一個 XRSession。接著,使用 XRSession.requestHitTestSource() 請求命中測試源,並將其儲存以供後續在幀迴圈中使用。最後,呼叫 getHitTestResults() 來獲取結果。

js
const xrSession = navigator.xr.requestSession("immersive-ar", {
  requiredFeatures: ["local", "hit-test"],
});
let hitTestSource = null;
xrSession
  .requestHitTestSource({
    space: viewerSpace, // obtained from xrSession.requestReferenceSpace("viewer");
    offsetRay: new XRRay({ y: 0.5 }),
  })
  .then((viewerHitTestSource) => {
    hitTestSource = viewerHitTestSource;
  });
// frame loop
function onXRFrame(time, xrFrame) {
  let hitTestResults = xrFrame.getHitTestResults(hitTestSource);
  // do things with the hit test results
}

規範

規範
WebXR Hit Test 模組
# dom-xrframe-gethittestresults

瀏覽器相容性

另見