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.

  • Button : Please refer to XR Input

  • 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
  1. XR: https://docs.unity3d.com/Manual/xr_input.html
  2. Essence: Wave.Essence.WXRDevice
WaveVRButtons
  1. XR: https://docs.unity3d.com/Manual/xr_input.html
  2. Essence: Wave.Essence.WXRDevice
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
  1. XR: https://docs.unity3d.com/Manual/xr_input.html
  2. Essence: Wave.Essence.WXRDevice
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
  1. XR: https://docs.unity3d.com/Manual/xr_input.html
  2. Essence: Wave.Essence.WXRDevice
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