XRHitTestSource

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Das XRHitTestSource Interface der WebXR Device API verwaltet Hit-Test-Abonnements. Sie können ein XRHitTestSource-Objekt mit der Methode XRSession.requestHitTestSource() erhalten.

Dieses Objekt enthält selbst keine Hit-Test-Ergebnisse, aber es wird verwendet, um für jeden XRFrame Hit-Tests zu berechnen, indem XRFrame.getHitTestResults() aufgerufen wird, was XRHitTestResult-Objekte zurückgibt.

Instanz-Eigenschaften

Keine.

Instanz-Methoden

XRHitTestSource.cancel() Experimentell

Meldet das Abonnement vom Hit-Test ab.

Beispiele

Erhalten eines XRHitTestSource-Objekts für eine Sitzung

Rufen Sie XRSession.requestHitTestSource() auf, um eine Hit-Test-Quelle zu erhalten.

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
}

Vom Hit-Test abmelden

Um sich von einer Hit-Test-Quelle abzumelden, rufen Sie XRHitTestSource.cancel() auf. Da das Objekt nicht mehr verwendbar ist, können Sie aufräumen und das XRHitTestSource-Objekt auf null setzen.

js
hitTestSource.cancel();
hitTestSource = null;

Spezifikationen

Specification
WebXR Hit Test Module
# hit-test-source-interface

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch