Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
XRSession: Methode requestHitTestSource()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell:Dies ist eineexperimentelle Technologie
Überprüfen Sie dieBrowser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
DierequestHitTestSource()-Methode desXRSession-Interfaces gibt einPromise zurück, das mit einemXRHitTestSource-Objekt aufgelöst wird, welches anXRFrame.getHitTestResults() übergeben werden kann.
In diesem Artikel
Syntax
requestHitTestSource(options)Parameter
optionsEin Objekt mit Konfigurationsoptionen, insbesondere:
spaceDer
XRSpace, der durch die Hit-Test-Quelle verfolgt wird.entityTypesOptionalEin
Array, das die Typen von Entitäten angibt, die für die Erstellung der Hit-Test-Quelle verwendet werden. Wenn kein Entitätstyp angegeben wird, enthält das Array standardmäßig ein einziges Element mit dem Typplane. Mögliche Typen:point: Berechnet die Hit-Test-Ergebnisse basierend auf erkannten charakteristischen Punkten.plane: Berechnet die Hit-Test-Ergebnisse basierend auf erkannten realen Ebenen.mesh: Berechnet die Hit-Test-Ergebnisse basierend auf erkannten Meshes.
offsetRayOptionalDas
XRRay-Objekt, das für den Hit-Test verwendet wird. Wenn keinXRRay-Objekt bereitgestellt wurde, wird ein neuesXRRay-Objekt ohne Parameter erstellt.
Rückgabewert
EinPromise, das mit einemXRHitTestSource-Objekt aufgelöst wird.
Ausnahmen
Anstatt echte Ausnahmen zu werfen, lehntrequestHitTestSource() das zurückgegebene Promise mit einemDOMException ab, insbesondere einer der folgenden:
NotSupportedErrorDOMExceptionWird ausgelöst, wenn
hit-testkeine aktivierte Funktion inXRSystem.requestSession()ist.InvalidStateErrorDOMExceptionWird ausgelöst, wenn die Sitzung bereits beendet wurde.
NotAllowedErrorDOMExceptionWird ausgelöst, wenn eine unangemessene Anzahl von Anfragen vorliegt. Einige Benutzeragenten können die Nutzung aus Datenschutzgründen einschränken.
Beispiele
>Anfordern einer Hit-Test-Quelle
Um eine Hit-Test-Quelle anzufordern, starten Sie eineXRSession mit der aktiviertenhit-test-Sitzungsfunktion. Konfigurieren Sie anschließend die Hit-Test-Quelle und speichern Sie sie für die spätere Verwendung in der Frame-Schleife und rufen SieXRFrame.getHitTestResults() auf, um das Ergebnis zu erhalten.
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 loopfunction onXRFrame(time, xrFrame) { let hitTestResults = xrFrame.getHitTestResults(hitTestSource); // do things with the hit test results}Spezifikationen
| Specification |
|---|
| WebXR Hit Test Module> # dom-xrsession-requesthittestsource> |