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, bevor Sie diese produktiv verwenden.
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.
entityTypes
Optional-
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.
offsetRay
Optional-
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:
NotSupportedError
DOMException
-
Wird ausgelöst, wenn
hit-test
kein aktiviertes Feature inXRSystem.requestSession()
ist. InvalidStateError
DOMException
-
Wird ausgelöst, wenn die Sitzung bereits beendet wurde.
NotAllowedError
DOMException
-
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
BCD tables only load in the browser