XRSession: requestHitTestSourceForTransientInput()-Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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 requestHitTestSourceForTransientInput()-Methode der XRSession-Schnittstelle gibt ein Promise zurück, das mit einem XRTransientInputHitTestSource-Objekt aufgelöst wird, das an XRFrame.getHitTestResultsForTransientInput() übergeben werden kann.
Syntax
requestHitTestSourceForTransientInput(options)
Parameter
options-
Ein Objekt mit Konfigurationsoptionen, speziell:
profile-
Ein String, der den Eingabeprofilnamen der transienten Eingabequelle angibt, die zur Berechnung der Trefferergebnisse verwendet wird.
entityTypesOptional-
Ein
Array, das die Typen von Entitäten spezifiziert, die zur Erstellung der Trefferquelle verwendet werden sollen. Wenn kein Entitätstyp angegeben ist, standardisiert das Array auf ein einzelnes Element mit dem Typplane. Mögliche Typen:point: Berechnen Sie Trefferergebnisse basierend auf charakteristischen Punkten, die erkannt wurden.plane: Berechnen Sie Trefferergebnisse basierend auf realen Ebenen, die erkannt wurden.mesh: Berechnen Sie Trefferergebnisse basierend auf erkannten Netzen.
offsetRayOptional-
Das
XRRay-Objekt, das zur Durchführung des Treffers verwendet wird. Wenn keinXRRay-Objekt bereitgestellt wurde, wird ein neuesXRRay-Objekt ohne Parameter konstruiert.
Rückgabewert
Ein Promise das mit einem XRTransientInputHitTestSource-Objekt aufgelöst wird.
Ausnahmen
Statt echte Ausnahmen zu werfen, lehnt requestHitTestSourceForTransientInput() 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 unangemessene Anzahl von Anfragen vorliegt. Einige Benutzeragenten könnten die Nutzung aus Datenschutzgründen einschränken.
Beispiele
>Anfordern einer transienten Trefferquelle
Um eine Trefferquelle anzufordern, starten Sie eine XRSession mit dem aktivierten hit-test-Sitzungs-Feature. Konfigurieren Sie anschließend die Trefferquelle und speichern Sie sie für die spätere Verwendung in der Frameroutine und rufen Sie XRFrame.getHitTestResultsForTransientInput() auf, um das Ergebnis zu erhalten.
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
}
Spezifikationen
| Specification |
|---|
| WebXR Hit Test Module> # dom-xrsession-requesthittestsourcefortransientinput> |
Browser-Kompatibilität
Loading…