Skip to content

Vive Input Utility v1.7.0

Choose a tag to compare

@lawwong lawwong released this 29 Aug 11:06
· 1020 commits to master since this release

Changes for v1.7.0:

  • New features

    • Add notification when new version released on Github.
    • Add VRModule class to bridge various VR SDK. It currently supports SteamVR plugin, Oculus VR plugin and Unity native VR/XR interface.
      • void VRModule.Initialize(): Create and initilize VRModule manager instance.
      • VRModuleActiveEnum VRModule.activeModule: Returns the activated module.
      • IVRModuleDeviceState VRModule.GetCurrentDeviceState(uint deviceIndex): Returns the virtual VR device status.
      • event NewPosesListener VRModule.onNewPoses: Invoked after virtual VR device status is updated.
      • event DeviceConnectedListener VRModule.onDeviceConnected: Invoked after virtual VR device is connected/disconnected.
      • event ActiveModuleChangedListener VRModule.onActiveModuleChanged: Invoked when a VR module is activated.
    • New binding interface using overlay UI. By default, the binding interface can be enabled by pressing RightShift + B in play mode.
      • Binding UI
      • Binding UI
      • Binding UI
    • Add define symbols
      • VIU_PLUGIN: Defined when Vive Input Utility plugin is imported in the project.
      • VIU_STEAMVR: Defined when SteamVR plugin is imported in the project.
      • VIU_OCULUSVR: Defined when OculusVR plugin (OVRPlugin) is imported in the project.
      • VIU_BINDING_INTERFACE_SWITCH: Define it to let the project be able to switch binding interface by pressing RightShift + B in play mode.
      • VIU_EXTERNAL_CAMERA_SWITCH: Define it to let the project be able to switch external camera quad view by pressing RightShift + M in play mode.
    • Add new role HandRole.ExternalCamera (Alias for HandRole.Controller3).
      • By default, it is mapping to the 3rd controller, if 3rd controller not available, then mapping to the first valid generic tracker.
      • ExternalCameraHook uses mapping as the default tracking target.
  • New componts

    • [ViveInputVirtualButton] Use this helper component to combine multiple Vive inputs into one virtual button.
  • Improvement

    • [ViveInput] Add more controller buttons, use ViveInput.GetPress(role, buttonEnum) to get device button stat
      • System (Only visible when sendSystemButtonToAllApps option is on)
      • Menu
      • MenuTouch
      • Trigger
      • TriggerTouch
      • Pad
      • PadTouch
      • Grip
      • GripTouch
      • CapSenseGrip
      • CapSenseGripTouch
      • AKey
      • AKeyTouch
      • OuterFaceButton (Alias for Menu)
      • OuterFaceButtonTouch (Alias for MenuTouch)
      • InnerFaceButton (Alias for Grip)
      • InnerFaceButtonTouch (Alias for GripTouch)
    • [ViveInput] Add controller axis enum, use ViveInput.GetAxis(role, axisEnum) to get device axis value
      • PadX
      • PadY
      • Trigger
      • CapSenseGrip
      • IndexCurl
      • MiddleCurl
      • RingCurl
      • PinkyCurl
    • [ViveRole] Role mapping/binding mechanism is improved and become more flexible.
      • Now different devices can bind to same role at the same time.
      • If a unconnected device is bound to a role, that role can still map to other connected device.
    • [ViveRole] Obsolete functions that retrieve device status and property, use static API in VRModule instead.
      • ViveRole.TryGetDeviceIndexBySerialNumber: Use VRModule.TryGetDeviceIndex instead.
      • ViveRole.GetModelNumber: Use VRModule.GetCurrentDeviceState(deviceIndex).modelNumber instead
      • ViveRole.GetSerialNumber: Use VRModule.GetCurrentDeviceState(deviceIndex).serialNumber instead
      • ViveRole.GetDeviceClass: Use VRModule.GetCurrentDeviceState(deviceIndex).deviceClass instead
    • [ViveRoleBindingsHelper] Now will automatically load bindings from "vive_role_bindings.cfg", no need to be in the scene to work.
    • [RenderModelHook] Add override model and shader option.
    • [ExternalCameraHook] Now ExternalCameraHook will track the HandRole.ExternalCamera by default.
    • [ExternalCameraHook] Now will be added into scene automatically if "externalcamera.cfg" exist when start playing, no need to add to scene manually.
    • [ExternalCameraHook] You can now enable static External Camera quad view (without tracking to a device) if
      1. VIU_EXTERNAL_CAMERA_SWITCH symbol is defined.
      2. externalcamera.cfg exist.
      3. RightShift + M pressed in play mode.
    • [BasicGrabbable, StickyGrabbable, Draggable] Add unblockable grab/drag option.
  • Bug fix

    • [ViveRoleProperty] Fix not handling serialized data right in inspector.
    • [PoseEaser] Now use unscaled time instead to avoid from being effected by time scale.