Migrating From Wave Legacy Plugin¶
In order to conform to the Unity XR Plugin Framework, we have redesigned all the features in the Wave XR Plugin. Therefore the old Wave Unity SDK (Wave Legacy Plugin) will no longer be supported apart from critical issues that needs to be fixed. Also, all old prefabs and components are deprecated, so you may need to redesign your scenes or scripts accordingly.
Note
The old Wave Unity SDK (Wave Legacy Plugin) will not be compatible with Unity version 2020.1 and newer. In that case, you will need to use the Wave XR plugin.
Note
If you are using the VIU Unity plugin to develop VIVE Wave™ applications, then no changes are required other than replacing the old Wave Unity SDK (Wave Legacy Plugin) with the Wave XR Plugin. Check the Getting Started section for information.
Before importing the Wave XR Plugin, remove all the Wave Legacy Plugin assets and samples.
Backup the following path if necessary
- Assets/Wave/Platform/Android/Customize/
- If you have created a customized Android Manifest (AndroidManifest.xml) here, you may want to create a backup. To use a customized Android Manifest in Wave XR Plugin, import the Custom Android Manifest feature from Wave XR/XRSDK under Project Settings and modify the AndroidManifest.xml file in Assets/Wave/XR/Platform/Android, or you can choose to put it directly in Asset/Plugins/Android.
Delete these directories from the Assets folder of your project
- Assets/Wave
- From wvr_unity_sdk.unitypackage
- Assets/Samples
- From wvr_unity_samples.unitypackage. If you have your own samples here, you may want to back them up.
- Assets/Misc
- From wvr_unity_samples.unitypackage
- Assets/Vive3DSP
- From wvr_unity_Vive3DSP.unitypackage
Legacy Components¶
If you used the Wave Legacy Plugin components bellow, you have to remove and replace them with Unity XR or Wave XR Plugin components.
Input Module Manager : Please refer to Input Module .
Pose : Please refer to XR TrackedPoseDriver or XR.Interaction.Toolkit.XRController .
Controller loader:
Controller loader and PoseTrackerManager are no longer supported in XR SDK, please follow Unity XR suggestion to use controller, however, Wave Controller still provides a lot of features to you. You can refer to UnityXRController .
Unity XRController doesn’t hide beam when invalid pose, this is different from legacy plugin behavior. Please be noted.
The following are lists of Legacy prefabs and scripts and their respective replacements in Wave XR Plugin:
Prefabs¶
Legacy | XR Plugin Replacement |
---|---|
Beam | Wave.Essence.InputModule.ControllerBeam |
ControllerPointer | Wave.Essence.InputModule.ControllerPointer |
ButtonManager |
|
WaveVRButtons |
|
InputModuleManager | Wave.Essence.Interaction.Mode.InteractionModeManager |
ReticlePointer | Wave.Essence.InputModule.GazePointer |
ReticleRing | Wave.Essence.InputModule.GazePointer |
ControllerLoader | Please follow XR Controller instructions. |
WaveVRGesture | Wave.Essence.Hand.HandManager |
Scripts¶
Legacy | XR Plugin Replacement |
---|---|
ButtonManager |
|
IWaveVR_BonePose | Wave.Essence.Hand.JointPose |
IWaveVR_EventSystemHandler | Wave.Essence.InputModule.IPointerHoverHandler |
WaveVR_AdaptiveControllerActions | Wave.Essence.Controller.Model.ButtonEffect |
WaveVR_AddEventSystemGUI | Wave.Essence.InputModule.EventCanvasSetter |
WaveVR_AutoLayout | Wave.Essence.Controller.Model.ControllerTips |
WaveVR_Beam | Wave.Essence.InputModule.ControllerBeam |
WaveVR_BonePose | Wave.Essence.Hand.JointPose |
WaveVR_BonePoseImpl | Wave.Essence.Hand.JointPose |
WaveVR_ButtonList |
|
WaveVR_CameraTexture | Wave.Essence.CameraTexture.CameraTextureManager |
WaveVR_Controller | N/A, use Unity XR Input to get device poses and button states instead. |
WaveVR_ControllerInputModule | Wave.Essence.InputModule.ControllerInputModule |
WaveVR_ControllerInstanceManager | Wave.Essence.InputModule.ControllerInputSwitch |
WaveVR_ControllerInstanceManager | N/A |
WaveVR_ControllerLoader | N/A, Follow XR Controller instructions instead |
WaveVR_ControllerManager | N/A |
WaveVR_ControllerPointer | Wave.Essence.InputModule.ControllerPointer |
WaveVR_ControllerPoseTracker | XR: https://docs.unity3d.com/Manual/xr_input.html |
WaveVR_ControllerResourceHolder | Wave.Essence.Controller.Model.ResourceHolder |
WaveVR_ControllerRootToEmitter | N/A, Use ControllerPoseMode instead. |
WaveVR_DevicePoseTracker | XR: https://docs.unity3d.com/Manual/xr_input.html |
WaveVR_DynamicResolution | Wave.Essence.Render.DynamicResolution |
WaveVR_EventSystemControllerProvider | Wave.Essence.InputModule.EventControllerProvider |
WaveVR_EventSystemGUIProvider | Wave.Essence.InputModule.EventCanvasProvider |
WaveVR_ExecuteEvents | Wave.Essence.InputModule.PointerEvents |
WaveVR_GazeInputModule | Wave.Essence.InputModule.GazeInputModule |
WaveVR_GestureBeam | Wave.Essence.InputModule.HandBeam |
WaveVR_GestureBeamProvider | Wave.Essence.InputModuleHandBeamProvider |
WaveVR_GestureInputModule | Wave.Essence.InputModule.HandInputModule |
WaveVR_GestureManager | Wave.Essence.Hand.HandManager |
WaveVR_GesturePointer | Wave.Essence.InputModule.HandSpotPointer |
WaveVR_GesturePointerProvider | Wave.Essence.InputModule.HandPointerProvider |
WaveVR_GesturePointerTracker | Wave.Essence.InputModule.HandPointerTracker |
WaveVR_GestureReticle | Wave.Essence.InputModule.HandRingPointer |
WaveVR_InputModuleManager | Wave.Essence.Interaction.Mode.InteractionModeManager |
WaveVR_PermissionManager | Wave.Essence.PermissionManager |
WaveVR_PoseTrackerManager | XR: https://docs.unity3d.com/Manual/xr_input.html |
WaveVR_RaycastResult | Wave.Essence.InputModule.RaycastResultProvider |
WaveVR_RaycastResultProvider | Wave.Essence.InputModule.RaycastResultProvider |
WaveVR_RenderModel | Wave.Essence.Controller.Model.RenderModel |
WaveVR_Reticle | Wave.Essence.InputModule.GazePointer |
WaveVR_Screenshot | N/A |
WaveVR_SetAsEventSystemController | Wave.Essence.InputModule.EventControllerSetter |
WaveVR_ShowIndicator | Wave.Essence.Controller.Model.ControllerTips |