XRFrame: getHitTestResultsForTransientInput() 方法

可用性有限

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

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

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

XRFrame 介面的 getHitTestResultsForTransientInput() 方法返回一個 XRTransientInputHitTestResult 物件陣列,其中包含給定 XRTransientInputHitTestSource 的瞬態輸入命中測試結果。

語法

js
getHitTestResultsForTransientInput(hitTestSource)

引數

hitTestSource

一個 XRTransientInputHitTestSource 物件,其中包含瞬態輸入命中測試訂閱。

返回值

一個 XRTransientInputHitTestResult 物件陣列。

示例

獲取瞬態輸入命中測試結果

要請求瞬態輸入命中測試源,請使用啟用了 hit-test 會話功能的 XRSession 啟動會話。接下來,使用 XRSession.requestHitTestSourceForTransientInput() 請求命中測試源,並將其儲存在幀迴圈中以備後用。最後,呼叫 getHitTestResultsForTransientInput() 來獲取結果。

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
}

規範

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

瀏覽器相容性

另見