How to create controller model to fit your requirements?¶
Introduction¶
WaveVR provides independent script of controller related function to fulfill your needs, the easiest way to use controller in WaveVR is to use WaveVR_ControllerLoader prefab, you can get all functionalities of WaveVR controller in this prefab and you have nothing to do when you use another real device.
WaveVR_ControllerLoader integrates features as below:
Scripts | Purpose |
---|---|
WaveVR_ControllerInstanceManager | Apply policy from OEM to manage controller beam. |
WaveVR_PoseTracker | Manage device’s tracking pose and decide to show/hide object. |
WaveVR_RenderModel | Get controller model from real device and draw to Unity’s scene. |
WaveVR_AdaptiveControllerActions | Show color on mapped mesh when you press/touch the key on the real device. |
WaveVR_ShowIndicator | Show tips for the buttons. |
WaveVR_Beam | Show a beam from controller root. |
WaveVR_ControllerPointer | Show a pointer based on controller. |
Please confirm all above features meet your requirements when you design a scene. However, you may only need 1 or 2 functions from above list, please use dedicated script instead.
If you want to | You may use | Note |
---|---|---|
Show controller model of real device | WaveVR_RenderModel | |
Get controller tracking pose and want WaveVR to decide when to show/hide your controller. |
WaveVR_PoseTrackerManager | You have only 1 between 2 choices. |
Get controller tracking pose only but don’t want WaveVR to decide when to show/hide your controller. |
WaveVR_DevicePoseTracker or WaveVR_ControllerPoseTracker |
|
Show tips on your controller. | WaveVR_ShowIndicator | Your controller’s button need follow naming rule by WaveVR. |
Show different color when you press/touch keys. | WaveVR_AdaptiveControllerActions | |
Draw a beam from controller | WaveVR_Beam | |
Draw a pointer. | WaveVR_ControllerPointer |
Moreover, you may combine several scripts to customize your controller. For example:
Case 1: I want to show controller model of real device, need WaveVR to provide pose and decide when to show or hide.
Empty object + WaveVR_PoseTrackerManager.cs WaveVR_RenderModel.cs |
Case 2: I have a customized controller model and need WaveVR to provide pose only.
Customized controller + WaveVR_DevicePoseTracker.cs or WaveVR_ControllerPoseTracker.cs |
Case3: I prefer to follow all policies by WaveVR but used my designed controller model.
Customized controller + WaveVR_PoseTrackerManager.cs |