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.
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
Loading…