Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

XRSession: requestHitTestSource()-Methode

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

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

Die requestHitTestSource()-Methode des XRSession-Interfaces gibt ein Promise zurück, das mit einem XRHitTestSource-Objekt aufgelöst wird, das an XRFrame.getHitTestResults() übergeben werden kann.

Syntax

js
requestHitTestSource(options)

Parameter

options

Ein Objekt, das Konfigurationsoptionen enthält, insbesondere:

space

Der XRSpace, der von der Hit-Test-Quelle verfolgt wird.

entityTypes Optional

Ein Array, das die Arten von Entitäten angibt, die zur Erstellung der Hit-Test-Quelle verwendet werden sollen. Wenn kein Entitätstyp angegeben ist, enthält das Array standardmäßig ein einziges Element mit dem Typ plane. Mögliche Typen:

  • point: Berechnet die Ergebnisse der Hit-Tests basierend auf charakteristischen Punkten.
  • plane: Berechnet die Ergebnisse der Hit-Tests basierend auf erkannten realen Ebenen.
  • mesh: Berechnet die Ergebnisse der Hit-Tests basierend auf erkannten Netzen.
offsetRay Optional

Das XRRay-Objekt, das für die Durchführung des Hit-Tests verwendet wird. Wenn kein XRRay-Objekt bereitgestellt wurde, wird ein neues XRRay-Objekt ohne Parameter erstellt.

Rückgabewert

Ein Promise, das mit einem XRHitTestSource-Objekt aufgelöst wird.

Ausnahmen

Anstelle von echten Ausnahmen lehnt requestHitTestSource() das zurückgegebene Promise mit einem DOMException ab, insbesondere einer der folgenden:

NotSupportedError DOMException

Wird ausgelöst, wenn hit-test kein aktiviertes Feature in XRSystem.requestSession() ist.

InvalidStateError DOMException

Wird ausgelöst, wenn die Sitzung bereits beendet wurde.

NotAllowedError DOMException

Wird ausgelöst, wenn eine unzumutbare Anzahl von Anfragen vorliegt. Einige Benutzeragenten könnten die Nutzung aus Datenschutzgründen einschränken.

Beispiele

Anfordern einer Hit-Test-Quelle

Um eine Hit-Test-Quelle anzufordern, starten Sie eine XRSession mit dem aktivierten hit-test-Sitzungsfeature. Konfigurieren Sie anschließend die Hit-Test-Quelle und speichern Sie sie für die spätere Verwendung in der Frame-Schleife und rufen Sie XRFrame.getHitTestResults() auf, um das Ergebnis 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
}

Spezifikationen

Spezifikation
WebXR Hit Test Module
# dom-xrsession-requesthittestsource

Browser-Kompatibilität

Siehe auch