Einrast-Interaktionen
Experimental
Diese Funktion ist momentan noch experimentell. Verwende sie in deinen Projekten mit Bedacht, da sie Auswirkungen auf die Leistung haben und Artefakte oder andere Probleme verursachen kann, die möglicherweise dein Projekt beeinträchtigen.
Design-Richtlinie: Ein komfortables Hand-Tracking-Erlebnis ist für immersive und unterhaltsame Apps unerlässlich. Der
Designleitfaden für Hand-Tracking enthält Informationen zu Best Practices und darüber, wie du das Risiko verringern kannst, dass sich die Nutzer*innen unwohl fühlen.
Mithilfe von Einrast-Interaktionen können Objekte automatisch an Posen in der Umgebung einrasten. In der DistanceGrabExample-Szene werden diese Interaktionen verwendet, um Objekte wieder an ihrer ursprünglichen Position einzurasten, wenn sie nicht benutzt werden. Du kannst jedoch auch eigene Verhaltensweisen definieren und die Objekte an Dingen wie Beständen, Feldern in einem Brettspiel oder Slots um den Körper des*der Nutze*in herum einrasten lassen. Ein Beispiel für Einrast-Interaktionen in einer vorab erstellten Szene findest du in der
SnapExamples-Szene.
SnapInteractor ist die
Interactor-Klasse für diese Interaktion. Diese Komponente wird in dem Element platziert, das einrasten können soll, z. B. in einer Schachfigur. Sie erkennt
SnapInteractable-Objekte in der Nähe und bewegt das Objekt in Richtung der besten verfügbaren Pose, die von diesen Interactables bereitgestellt wird.
Wenn die optionalen Einstellungen Time Out Interactable und Time Out angegeben werden, bewegt sich der Interactor nach Verstreichen der in Time Out angegebenen Anzahl von Sekunden automatisch zu diesem Interactable, wenn das greifbare Objekt nicht von einem anderen Interactor ausgewählt oder mit einem anderen Interactor darauf gezeigt wird.
Die
SnapInteractable-Komponente ist die
Interactable-Klasse für diese Interaktion. In der Standardkonfiguration stellt sie eine einzelne Pose im Raum bereit, an der die Interactors einrasten können. Du kannst sie jedoch optional auf verschiedene Weisen optimieren:
- Movement Provider: Durch Referenzieren eines
MovementProvider kann die Einrastmethode vollständig angepasst werden. Standardmäßig folgt der Interactor dem Slot mit einer festen Geschwindigkeit, aber wenn er dem anderen MovementProvider folgt, kann er eine Kurve nachzeichnen, Lockerungen hinzufügen etc. - Snap Pose Delegate: Mit der
ISnapPoseDelegate-Schnittstelle kannst du mehrere Posen innerhalb eines SnapInteractable erstellen. Die Implementierung und Bereitstellung dieser Schnittstelle ist nützlich, wenn du ein einziges SnapInteractable für alle Felder eines Bretts in einem Brettspiel verwenden oder die verschiedenen Slots in einem Inventarsystem definieren möchtest, sodass eingerastete Objekte sogar bewegt werden können, wenn mit neuen Interactors auf sie gezeigt wird, um Platz zu schaffen.
- Unter Create Snap Interactions (Einrast-Interaktionen erstellen) erfährst du, wie du deiner Szene Einrast-Interaktionen hinzufügst.