Inverse3 und VerseGrip-Controller
Die Controller Inverse3 und VerseGrip sind so konzipiert, dass sie ihre jeweiligen physischen Geräte nahtlos mit GameObjects in Unity verbinden. Dies erfolgt über den Device Mapper. Mithilfe hochfrequenter Sensordaten ermöglichen diese Komponenten eine präzise und reaktionsschnelle Steuerung in der virtuellen Umgebung. Ihre Funktionen sind sowohl in der Logik als auch in den Fähigkeiten harmonisch aufeinander abgestimmt und gewährleisten so ein einheitliches Nutzererlebnis.
Diese Controller bilden das Fundament für Haply Inverse Unity Package und ermöglichen es Entwicklern, immersive und interaktive VR-Anwendungen zu erstellen, indem sie die erweiterten Fähigkeiten der Hardware von Haply nutzen. Sie übernehmen die Umrechnung zwischen den lokalen Koordinaten der Geräte und den räumlichen Parametern der Spielwelt präzise und sorgen so für authentische und ansprechende Interaktionen.
Inverse3-Controller
Die Komponente Inverse3-Controller ist entscheidend, um ein Inverse3-Gerät mit dem entsprechenden GameObject zu verknüpfen. Sie verwendet hochfrequente Sensordaten, um die physischen Bewegungen des Geräts im virtuellen Raum präzise abzubilden. Zu den wichtigsten Funktionen gehören:
Wichtige Funktionen und API von Inverse3
-
Ereignis „Gerätezustand geändert“: Das Herzstück des Inverse3-Controllers ist dieses Ereignis, das bei jedem haptischen Frame ausgelöst wird und Echtzeit-Updates zu Position und Geschwindigkeit des Cursors liefert. Es ist unverzichtbar für Anwendungen, die eine kontinuierliche Verfolgung des Gerätezustands benötigen, oder für die Implementierung von Steuerbefehlen in Echtzeit.
-
Abrufen von Position und Geschwindigkeit: Bietet Eigenschaften wie
CursorPosition,CursorVelocity,CursorLocalPositionundCursorLocalVelocityfür den Zugriff auf den aktuellen Zustand des Geräts. Sie sind entscheidend, um physische Bewegungen präzise auf virtuelle Räume abzubilden. -
Kraft- und Positionssteuerung: Bietet Methoden wie
SetCursorForceundSetCursorPositionfür die direkte Steuerung des Geräts. Entwickler können damit Kräfte anwenden oder Positionen festlegen und so virtuelle Interaktionen verbessern.
Inspector-Ansicht von Inverse3

- Device: Wählt ein bestimmtes Gerät aus. Ein Klick auf
<refresh device list>verwendet den Device Mapper, um im Editor-Modus Geräte abzurufen, und aktualisiert alle Device-Dropdown-Menüs. - Handedness: Filtert Geräte anhand ihrer Händigkeitskonfiguration.
- Cursor: Verknüpft mit dem Objekt Inverse3Cursor, das sich synchron mit den Positionsaktualisierungen des Geräts bewegt.
- Body: Verbindet mit dem Inverse3Body, der die physische Ausrichtung des Geräts im Raum repräsentiert.
- Koordinatenumrechnung: Legt fest, wie die Cursorposition und die Körperausrichtung des Geräts in die Spielwelt übertragen werden. So werden präzise und anpassbare Zuordnungen gewährleistet.
- Cursor-Daten: Zeigt die Position des Cursors in der Spielwelt an.
- Gerätedaten: Zeigt die Ein- und Ausgabedaten des Geräts in Echtzeit an.
- Ereignisse: Unity-Ereignisse werden im Hauptthread ausgelöst und unterstützen Szeneninteraktionen oder UI-Aktualisierungen.
- Bereit: Signalisiert, wenn das Gerät einsatzbereit ist.
- ControlModeChanged: Zeigt Änderungen des Steuerungsmodus des Geräts an (z. B. Kraft- oder Positionssteuerung).
- PowerSupplyStatusChanged: Benachrichtigt über Änderungen des Status der Stromversorgung des Geräts.

Gizmos von Inverse3
Stellt visuelle Anzeigen für die Position des Geräts und die maximal erreichbare Entfernung des Cursors bereit. Die Farbcodierung richtet sich nach der Händigkeit.
- Blau kennzeichnet linkshändige Geräte.
- Rot kennzeichnet rechtshändige Geräte.
- Bei Geräten ohne zugewiesene Händigkeit werden beide Farben angezeigt, bis sie zur Laufzeit bestimmt ist.

VerseGrip-Controller
Ähnlich wie der Inverse3-Controller weist der VerseGrip-Controller ein VerseGrip-Gerät einem verknüpften GameObject zu. Diese Komponente ist unverzichtbar, um die einzigartigen Eingabefunktionen von VerseGrip zu nutzen.
Wichtige Funktionen und API von VerseGrip
-
Ereignis „Gerätezustand geändert“: Benachrichtigt über Änderungen der Ausrichtung des Geräts und der Tastenzustände. Dies unterstützt interaktive Anwendungen, indem zeitnah Rückmeldung zu Benutzereingaben und zur Geräteausrichtung gegeben wird.
-
Tasteninteraktion: Bietet Methoden zur Erkennung von Tasteninteraktionen (
GetButton,GetButtonDown,GetButtonUp) und ermöglicht so Eingabemechanismen im haptischen Thread. -
Verbindungsstatus: Überwacht seinen Verbindungsstatus zu anderen Geräten und signalisiert ihn über die Ereignisse
AttachedundDetached. Dies ist für Anwendungen nützlich, die von der physischen Konfiguration des Geräts abhängen.
Inspector-Ansicht von VerseGrip

- Device: Wählt ein bestimmtes Gerät aus. Ein Klick auf
<refresh device list>aktiviert den Client im Editor-Modus und aktualisiert alle Device-Dropdown-Menüs. - Cursor: Verknüpft mit dem Objekt VerseGripCursor, das sich entsprechend den Ausrichtungsaktualisierungen des Geräts dreht.
- Koordinatenumrechnung: Legt fest, wie die Ausrichtung des Geräts in die Spielwelt übertragen wird. So werden präzise und anpassbare Zuordnungen gewährleistet.
- Cursor-Daten: Zeigt die Drehung des Cursors in der Spielwelt an.
- Gerätedaten: Zeigt die lokale Drehung des Geräts, die Tastenzustände und den Verbindungsstatus an.
- Ereignisse: Löst Unity-Ereignisse im Hauptthread aus, um Szenen- oder UI-Interaktionen zu unterstützen.
- Bereit: Signalisiert, wenn das Gerät einsatzbereit ist.
- Taste gedrückt: Wird ausgelöst, wenn eine Taste gedrückt wird.
- Taste losgelassen: Wird ausgelöst, wenn eine Taste losgelassen wird.
- Verbunden: Zeigt an, wann das Gerät mit dem Inverse3 verbunden ist.
- Getrennt: Zeigt an, wann das Gerät vom Inverse3 getrennt wird
