Inverse3 und VerseGrip-Controller
Die Controller- Inverse3 - und VerseGrip-Komponenten sind so konzipiert, dass sie ihre jeweiligen physischen Geräte nahtlos mit GameObjects in Unity verbinden. Dies geschieht ü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 die Grundlage für das „ Haply “ Inverse Unity Package und ermöglichen es Entwicklern, immersive und interaktive VR-Anwendungen zu erstellen, indem sie die erweiterten Funktionen der Hardware von „ Haply “ nutzen. Sie übernehmen präzise die Umrechnung zwischen den lokalen Koordinaten der Geräte und den räumlichen Parametern der Spielwelt und sorgen so für authentische und ansprechende Interaktionen.
Inverse3-Steuergerät
Die Komponente „ Inverse3-Controller“ ist entscheidend, um ein „ Inverse3 “-Gerät mit dem entsprechenden GameObject zu verknüpfen. Sie nutzt 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 erfordern, oder für die Umsetzung von Steuerbefehlen in Echtzeit.
-
Abfrage von Position und Geschwindigkeit: Bietet Funktionen 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
SetCursorForceundSetCursorPositionzur direkten Steuerung des Geräts. Entwickler können damit Kräfte ausüben oder Positionen festlegen und so virtuelle Interaktionen verbessern.
Inspector-Ansicht von Inverse3

- Gerät: 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 Gerät-Dropdown-Menüs. - Händigkeit: 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 physikalische Ausrichtung des Geräts im Raum darstellt.
- Koordinatenumrechnung: Legt fest, wie die Cursorposition und die Ausrichtung 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 dienen der Unterstützung von Szeneninteraktionen oder UI-Aktualisierungen.
- Bereit: Zeigt an, dass das Gerät betriebsbereit ist.
- ControlModeChanged: Zeigt Änderungen des Steuerungsmodus des Geräts an (z. B. Kraft- oder Positionssteuerung).
- PowerSupplyStatusChanged: Informiert über Änderungen des Status der Stromversorgung des Geräts.

Gizmos von Inverse3
Bietet visuelle Anzeigen für die Position des Geräts und die maximal erreichbare Entfernung des Cursors. Die Farbcodierung richtet sich nach der Händigkeit.
- Blau kennzeichnet Geräte für Linkshänder.
- Rot kennzeichnet Geräte für Rechtshänder.
- Bei Geräten ohne festgelegte Händigkeit werden beide Farben angezeigt, bis diese zur Laufzeit bestimmt wird.

VerseGrip-Controller
Ähnlich wie der „ Inverse3 “-Controller ordnet der „VerseGrip“-Controller einem verknüpften GameObject ein VerseGrip-Gerät zu. Diese Komponente ist unverzichtbar, um die einzigartigen Eingabefunktionen von VerseGrip nutzen zu können.
Wichtige Funktionen und API von VerseGrip
-
Ereignis „Gerätezustand geändert“: Informiert über Änderungen der Geräteausrichtung und des Tastenzustands. Dies unterstützt interaktive Anwendungen, indem zeitnah eine Rückmeldung zu Benutzereingaben und zur Geräteausrichtung gegeben wird.
-
Tastenbedienung: Bietet Methoden zur Erkennung von Tasteninteraktionen (
GetButton,GetButtonDown,GetButtonUp) und ermöglicht so Eingabemöglichkeiten im haptischen Thread. -
Verbindungsstatus: Überwacht den Verbindungsstatus zu anderen Geräten und meldet diesen ü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

- Gerät: Wählt ein bestimmtes Gerät aus. Ein Klick auf
<refresh device list>Aktiviert den Client im Editor-Modus und aktualisiert alle Gerät-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 Interaktionen mit Szenen oder der Benutzeroberfläche zu unterstützen.
- Bereit: Zeigt an, dass das Gerät betriebsbereit 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
