Entwickeln
Entwickeln
Deine Plattform auswählen

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.

PokeInteractor

Ein PokeInteractor definiert die Punkttransformation, die für die Berechnung von Hover und Select via ISurface-Schnittstelle verwendet werden soll, wenn ein PokeInteractable gegeben ist.
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.

PokeInteractable

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.
The surface and surface normal of a button
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

Poke interaction
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

PokeInteractables können mit einem PointableCanvas kombiniert werden, um Direct Touch für die Unity-UI bereitzustellen. Weitere Details findest du unter Integration in Unity Canvas.

Mehr dazu

Design-Richtlinien