Skip to main content
Version: 2.2.0

Inverse3 and VerseGrip Controllers

The Inverse3 and VerseGrip Controllers are engineered to seamlessly integrate their respective physical devices with Unity game objects, facilitated by the Device Mapper. Utilizing high-frequency sensor data, these components enable precise and responsive control within the virtual environment. Their functionalities are harmoniously aligned in both logic and capabilities, ensuring a unified user experience.

These controllers form the cornerstone of the Haply Inverse Unity Package, empowering developers to craft immersive and interactive VR applications by leveraging the advanced capabilities of Haply's hardware. They adeptly manage the conversion between the devices' local coordinates and the game world's spatial parameters, ensuring authentic and engaging interactions.

Inverse3 Controller

The Inverse3 Controller component is crucial for associating an Inverse3 device with its corresponding game object. It uses high-frequency sensor data to accurately reflect the device's physical movements within the virtual space. Key functionalities include:

Inverse3 Key Features and API

  • Device State Changed Event: The heart of the Inverse3 Controller, this event is triggered on each haptic frame, providing real-time updates on the cursor's position and velocity. It's essential for applications requiring continuous tracking of the device's state or for implementing real-time control commands.

  • Retrieving Position and Velocity: Offers properties like Position, Velocity, LocalPosition, and LocalVelocity for accessing the device's current state, crucial for mapping physical movements to virtual spaces accurately.

  • Force and Position Control: Provides methods such as CursorSetForce and CursorSetPosition for direct manipulation of the device, enabling developers to apply forces or set positions, enhancing virtual interactions.

Inverse3 Inspector View

inverse3-controller-editor

  • Device: Selects a specific device. Clicking on <refresh device list> connects the client in Editor Mode and updates all Device dropdowns. See the Connection Monitor for more details.
  • Handedness: Filters devices based on their handedness configuration.
  • Cursor: Links to the Inverse3Cursor object, moving in sync with the device's position updates.
  • Body: Connects to the Inverse3Body representing the device's physical body orientation.
  • Coordinate Conversion: Define how the device's cursor position and body orientation are transformed into the game world, ensuring accurate and customizable mappings.
  • Cursor Data: Shows the cursor's position in the game world.
  • Device Data: Displays the device's real-time input and output data.
  • Events: Unity events triggered on the main thread, facilitating scene interactions or UI updates.
    • Ready: Signals when the device is ready for use.
    • ControlModeChanged: Indicates changes in the device's control mode (e.g., force or position control).
    • PowerSupplyStatusChanged: Notifies about changes in the device's power supply status.

inverse3-controller-runtime

Inverse3 Gizmos

Provides visual indicators for the device's position and the cursor's maximum reachable distance, with color coding based on handedness.

  • Blue indicates left-handed devices.
  • Red signifies right-handed devices.
  • Both colors are displayed for devices with unassigned handedness until determined at runtime.

inverse3-left-right

VerseGrip Controller

Similar to the Inverse3 Controller, the VerseGrip Controller assigns a VerseGrip device to a linked game object. This component is essential for utilizing the VerseGrip's unique input features.

VerseGrip Key Features and API

  • Device State Changed Event: Notifies about changes in the device's orientation and button states, supporting interactive applications by providing timely feedback on user inputs and device orientation.

  • Button Interaction: Features methods for detecting button interactions (GetButton, GetButtonDown, GetButtonUp), enabling input mechanisms into the haptic thread.

  • Attachment State: Monitors its attachment state to other devices, signaling through Attached and Detached events, useful for applications dependent on the physical configuration of the device.

VerseGrip Inspector View

versegrip-controller-editor

  • Device: Selects a specific device. Clicking on <refresh device list> activates the client in Editor Mode and refreshes all Device dropdowns.
  • Cursor: Links to the VerseGripCursor object, rotating according to the device's orientation updates.
  • Coordinate Conversion: Define how the device's orientation is transformed into the game world, ensuring accurate and customizable mappings.
  • Cursor Data: Displays the cursor's rotation in the game world.
  • Device Data: Shows the device's local rotation, button states, and attachment status.
  • Events: Initiates Unity events on the main thread to support scene or UI interactions.
    • Ready: Signals when the device is ready for use.
    • Button Down: Triggers when a button is pressed.
    • Button Up: Triggers when a button is released.
    • Attached: Indicates when the device is attached to the Inverse3.
    • Detached: Indicates when the device is detached from the Inverse3

versegrip-controller-runtime