Vive Input Utility v1.7.0
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.
- 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
- VIU_EXTERNAL_CAMERA_SWITCH symbol is defined.
- externalcamera.cfg exist.
- RightShift + M pressed in play mode.
- [BasicGrabbable, StickyGrabbable, Draggable] Add unblockable grab/drag option.
- [ViveInput] Add more controller buttons, use ViveInput.GetPress(role, buttonEnum) to get device button stat
-
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.


