XRSession: requestHitTestSourceForTransientInput() 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 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, das Konfigurationsoptionen enthält, insbesondere:
profile-
Ein String, der den Eingabeprofilsnamen der transienten Eingabequelle angibt, die zur Berechnung der Hit-Test-Ergebnisse verwendet wird.
entityTypesOptional-
Ein
Array, das die Typen von Entitäten spezifiziert, die zur Erstellung der Hit-Test-Quelle verwendet werden sollen. Wenn kein Entitätstyp angegeben ist, wird das Array standardmäßig als ein einziges Element mit dem Typplanefestgelegt. Mögliche Typen:point: Berechnet Hit-Test-Ergebnisse basierend auf erkannten charakteristischen Punkten.plane: Berechnet Hit-Test-Ergebnisse basierend auf erkannten realen Ebenen.mesh: Berechnet Hit-Test-Ergebnisse basierend auf erkannten Meshes.
offsetRayOptional-
Das
XRRayObjekt, das verwendet wird, um den Hit-Test durchzuführen. Wenn keinXRRayObjekt bereitgestellt wurde, wird ein neuesXRRayObjekt ohne Parameter konstruiert.
Rückgabewert
Ein Promise, das mit einem XRTransientInputHitTestSource Objekt aufgelöst wird.
Ausnahmen
Anstatt echte Ausnahmen zu werfen, weist requestHitTestSourceForTransientInput() das zurückgegebene Promise mit einem DOMException zurück, insbesondere mit einer der folgenden:
NotSupportedErrorDOMException-
Wird ausgelöst, wenn
hit-testkein aktiviertes Feature inXRSystem.requestSession()ist. InvalidStateErrorDOMException-
Wird ausgelöst, wenn die Sitzung bereits beendet ist.
NotAllowedErrorDOMException-
Wird ausgelöst, wenn es eine unzumutbare Anzahl von Anfragen gibt. Einige User Agents könnten die Nutzung aus Datenschutzgründen einschränken.
Beispiele
>Anfordern einer transienten Hit-Test-Quelle
Um eine Hit-Test-Quelle anzufordern, starten Sie eine XRSession mit dem hit-test Sitzungsmerkmal aktiviert. Konfigurieren Sie anschließend die Hit-Test-Quelle und speichern Sie sie zur späteren Verwendung in der Frame-Schleife 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
| Spezifikation |
|---|
| WebXR Hit Test Module> # dom-xrsession-requesthittestsourcefortransientinput> |