Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* New features - Add notification when new version released on [Github](https://github.com/ViveSoftware/ViveInputUtility-Unity/releases). - 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](https://github.com/ViveSoftware/ViveInputUtility-Unity/blob/gh-pages/assets/img/binding_ui_preview_01.png) - ![Binding UI](https://github.com/ViveSoftware/ViveInputUtility-Unity/blob/gh-pages/assets/img/binding_ui_preview_02.png) - ![Binding UI](https://github.com/ViveSoftware/ViveInputUtility-Unity/blob/gh-pages/assets/img/binding_ui_preview_03.png) - 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.
- Loading branch information