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
requestHitTestSource(options)
Parameter
options-
Ein Objekt, das Konfigurationsoptionen enthält, insbesondere:
space-
Der
XRSpace, der von der Hit-Test-Quelle verfolgt wird. entityTypesOptional-
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 Typplane. 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.
offsetRayOptional-
Das
XRRay-Objekt, das für die Durchführung des Hit-Tests verwendet wird. Wenn keinXRRay-Objekt bereitgestellt wurde, wird ein neuesXRRay-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:
NotSupportedErrorDOMException-
Wird ausgelöst, wenn
hit-testkein aktiviertes Feature inXRSystem.requestSession()ist. InvalidStateErrorDOMException-
Wird ausgelöst, wenn die Sitzung bereits beendet wurde.
NotAllowedErrorDOMException-
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.
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> |