XRHitTestSource

可用性有限

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

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

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

XRHitTestSource 介面是 WebXR 裝置 API 的一部分,用於處理命中測試訂閱。您可以透過使用 XRSession.requestHitTestSource() 方法獲取 XRHitTestSource 物件。

此物件本身不包含命中測試結果,但它用於透過呼叫 XRFrame.getHitTestResults() 來為每個 XRFrame 計算命中測試,該方法返回 XRHitTestResult 物件。

例項屬性

無。

例項方法

XRHitTestSource.cancel() 實驗性

取消命中測試訂閱。

示例

獲取會話的 XRHitTestSource 物件

呼叫 XRSession.requestHitTestSource() 來獲取命中測試源。

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
}

取消命中測試訂閱

要取消命中測試源的訂閱,請呼叫 XRHitTestSource.cancel()。由於該物件將不再可用,您可以清理並將其設定為 null

js
hitTestSource.cancel();
hitTestSource = null;

規範

規範
WebXR Hit Test 模組
# hit-test-source-interface

瀏覽器相容性

另見