Anstupsen-Interaktionen
Aktualisiert: 04.11.2025
Design-Richtlinien: Ein komfortables Hand-Tracking-Erlebnis ist für die Entwicklung von immersiven und unterhaltsamen Apps unerlässlich. Die
Design-Richtlinien am Ende der Seite enthalten Informationen zu Best Practices und dazu, wie du Unwohlsein bei den Nutzer*innen minimierst.
Anstupsen-Interaktionen gestatten dir die Interaktion mit Oberflächen via Direct Touch mittels Händen, controllergesteuerten Händen und Controllern.
Hinweis: Wenn du noch nie mit dieser Meta XR-Funktion gearbeitet hast, empfehlen wir für den Einstieg die Verwendung von
Building Blocks. Mit dieser Unity-Erweiterung für Meta XR SDKs kannst du mühelos Funktionen zu deinem Projekt hinzufügen.
Ein
PokeInteractor bewertet, welches
PokeInteractable das Beste für ein Hover ist. Dazu wird das nächstgelegene
PokeInteractable anhand der Distanz berechnet, wie durch ein
ISurfacePatch definiert.
Zusätzlich bestimmt ein PokeInteractor, dass eine Auswahl erfolgen sollte, wenn die Punkttransformation über zwei konsekutive Einzelbilder die ISurface des PokeInteractable in Richtung der Flächennormale schneidet. So kann es sowohl schnelle Tastendrücke verarbeiten als auch erfordern, dass Tastendrücke nur von oberhalb einer Fläche ausgehen.
Ein
PokeInteractable steht für eine anstupsbare Oberfläche, etwa ein Button oder eine Benutzungsoberfläche. Es verwendet
MinThresholdsConfig, um zu bestimmen, wann mit dem Hover begonnen wird. Du kannst die Selektions- und Deselektionskriterien mittels
RecoilAssistConfig anpassen. Anstupsbare Oberflächen verwenden
DragThresholdsConfig, um zwischen Ziehen und Drücken zu unterscheiden und um Move-Pointer-Events zu unterdrücken, wenn ein Poke Interactor einer Drückbewegung folgt. Du kannst beim Ziehen ein Gefühl von Reibung erzeugen, indem du
PositionPinningConfig verwendest.
In diesem Beispiel aus der PokeExamples-Szene ist Nummer 1 (die weiße Ebene) die Button-Oberfläche und Nummer 2 (die blaue Linie) ist die Normale.
Anstupsen-Interaktionen mit Händen
Für Hände empfehlen wir die Verwendung einer
HandJoint-Komponente zur Angabe des Transformationspunkts eines
PokeInteractor.
HandBone definiert die Punkttransformation, die zum Berechnen von Hover und Select via
ISurface verwendet wird. Diese Komponente berechnet eine Transformation, die sich auf ein bestimmtes Handgelenk an einer
IHand bezieht. Für Direct Touch verwendest du am besten den Zeigefinger.
Touch-Begrenzungen für das Anstupsen mit Händen
Um Touch-Begrenzungen für Anstupsen-Interaktionen zu aktivieren, sind zwei weitere Komponenten erforderlich.
Eine
SyntheticHand ist erforderlich, um die Handgelenkposition von Handdaten auf Grundlage der Anstupsen-Interaktion zu überschreiben.
Eine
HandPokeLimiterVisual-Komponente versetzt das Handgelenk einer
SyntheticHand in einen eingeschränkten Modus, wenn ein
PokeInteractor die Punkttransformation definiert, die zum Berechnen von Hover und Select via
ISurface verwendet wird.
Ein Beispiel für eine Touch-Begrenzung mit Anstupsen ist in der PokeExamples-Beispielszene zu sehen.
Hinweis: Wenn ein Button sich beim Anstupsen bewegen soll, wie in der PokeExamples-Szene gezeigt, füge die
PokeInteractableVisual-Komponente hinzu, die sich auf das
PokeInteractable und die Trigger-Ebene bezieht. Die Trigger-Ebene agiert als Begrenzungsebene für das Anstupsen oder als „Stopp-Punkt“ des Button-Wegs. Die Transformation, auf der dieses
HandPokeLimiterVisual platziert ist, bewegt sich beim Drücken und stoppt an der Trigger-Ebene, ab der die Anstupsen-Begrenzung beginnt.
Anstupsen-Interaktion mit Unity Canvas