XRTransientInputHitTestSource

可用性有限

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

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

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

XRTransientInputHitTestSource 介面是 WebXR 裝置 API 的一部分,用於處理瞬態輸入命中測試訂閱。您可以透過呼叫 XRSession.requestHitTestSourceForTransientInput() 來獲取一個 XRTransientInputHitTestSource 物件。

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

例項屬性

無。

例項方法

XRTransientInputHitTestSource.cancel() 實驗性

取消訂閱瞬態輸入命中測試。

示例

為會話獲取 XRTransientInputHitTestSource 物件

使用 XRSession.requestHitTestSourceForTransientInput() 方法來獲取瞬態輸入命中測試源。

js
const xrSession = navigator.xr.requestSession("immersive-ar", {
  requiredFeatures: ["local", "hit-test"],
});

let transientHitTestSource = null;

xrSession
  .requestHitTestSourceForTransientInput({
    profile: "generic-touchscreen",
    offsetRay: new XRRay(),
  })
  .then((touchScreenHitTestSource) => {
    transientHitTestSource = touchScreenHitTestSource;
  });

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

  // do things with the transient hit test results
}

取消訂閱瞬態輸入命中測試

要取消訂閱瞬態輸入命中測試源,請使用 XRTransientInputHitTestSource.cancel() 方法。由於該物件將不再可用,您可以進行清理並將其設定為 null

js
transientHitTestSource.cancel();
transientHitTestSource = null;

規範

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

瀏覽器相容性

另見