-
VIVE Wave
-
SDK
- What is VIVE Wave?
- Where can I download the Wave SDK?
- How do I access the Wave Developer Community forum?
- How do I fix compile or build errors after importing a custom package?
- How do I put controllers into a scene?
- How do I switch heads with different tracking pose settings in the same scene?
- How do I switch between 6DoF and 3DoF in the same scene?
- Why can't I receive events or click on the system overlay?
- How do I get controller objects in runtime?
- How do I show or hide the controller pointer?
- How do I change the controller model object from Root to Emitter?
- How do I know if a controller sends an event?
- How do I set the controller position in a rotation-only environment?
- How do I display only one controller in a scene?
- How do I find out the distance of the head from the floor?
-
Distributing your app
-
-
VIVE SRWorks
-
VIVE Eye and Facial Tracking
- Where can I download the VIVE Eye and Facial Tracking SDK and runtime?
- How do I calibrate eye tracking?
- What drivers are required for VIVE Eye and Facial Tracking?
- How do I update the VIVE Eye and Facial Tracking runtime?
- How do I update the VIVE Pro Eye firmware?
- When starting my app, why does Windows prompt for permission to make changes?
- The eye camera version shows "N/A". Is that a problem?
- If I encountered other eye tracking issues, what should I do?
- I encountered eye calibration initialization and OpenCL errors. What should I do?
- Can eye tracking work when using the VIVE Wireless Adapter?
- If the user has visual impairment, what happens to the calibration data?
- What's the trackable FOV? How about the tracking accuracy?
-
VIVE Hand Tracking
- Does the Hand Tracking SDK support VIVE Cosmos?
- Are there prebuilt samples available, and where can I find them?
- My Unity build throws this exception: "DllNotFoundException: aristo_interface". What should I do?
- I encountered this error: "Start Detection Error: Camera". What should I do?
- I encountered this error: "Start Detection Error: OpenCL". What should I do?
- Is there a way to improve hand detection accuracy?
-
VIVE 3DSP Audio
- Are there tutorials for the VIVE 3DSP Audio SDK?
- How do I know if there's a public release for the SDK?
- How do I quickly enable VIVE 3DSP Audio SDK to add enhanced support for 3D sound effects in Unity?
- Does 3DSP Audio SDK have any hardware dependencies?
- Can VIVE 3DSP Audio SDK be used in conjunction with other spatialization SDKs?
-
VIVEPORT
-
VIVE Business Streaming
-
Facial tracking
-
Hand tracking
-
VIVE Wrist Tracker
- How do I use VIVE Wrist Tracker with VIVE Focus 3 for PC VR apps?
- How do I set VIVE Wrist Tracker options?
- How do I use VIVE Wrist Tracker as VIVE Tracker?
- How do I use VIVE Wrist Tracker for hand tracking?
- How do I use VIVE Wrist Tracker as VIVE Tracker for Native or Unity?
- How do I use VIVE Wrist Tracker as VIVE Tracker for Unreal Engine?
-
How do I display only one controller in a scene?
You can choose to display only one controller in a scene while still maintaining 2 active controllers.
Add the following code:
- New script in
WaveVR.
private GameObject ControllerLoader_DO = null; private GameObject loaderInstance_DO = null; private GameObject ControllerLoader_ND = null; private GameObject loaderInstance_ND = null; #region MonoBehaviour Overrides void OnEnable() { WaveVR_Utils.Event.Listen (WaveVR_Utils.Event.CONTROLLER_MODEL_UNLOADED, OnControllerUnloaded); } void Start () { this.ControllerLoader_DO = Instantiate(Resources.Load("ControllerLoader", typeof(GameObject))) as GameObject; this.ControllerLoader_DO.GetComponent<WaveVR_ControllerLoader>().WhichHand = WaveVR_ControllerLoader.ControllerHand.Dominant; this.ControllerLoader_DO.SetActive(false); this.ControllerLoader_ND = Instantiate(Resources.Load("ControllerLoader", typeof(GameObject))) as GameObject; this.ControllerLoader_ND.GetComponent<WaveVR_ControllerLoader>().WhichHand = WaveVR_ControllerLoader.ControllerHand.Non_Dominant; this.ControllerLoader_ND.SetActive(false); }
- Update () will monitor the current controller connection status and display only one controller.
void Update () { if (WaveVR.Instance == null|| this.ControllerLoader_DO == null || this.ControllerLoader_ND == null) return; if (this.loaderInstance_DO != null || this.loaderInstance_ND != null) return; WaveVR.Device _dev_do = WaveVR.Instance.getDeviceByType (WaveVR_Controller.EDeviceType.Dominant); if (_dev_do != null && _dev_do.connected && this.loaderInstance_ND == null) { this.loaderInstance_DO = Instantiate(ControllerLoader_DO); this.loaderInstance_DO.SetActive(true); } WaveVR.Device _dev_nd = WaveVR.Instance.getDeviceByType(WaveVR_Controller.EDeviceType.NonDominant); if (_dev_nd != null && _dev_nd.connected && this.loaderInstance_DO == null) { this.loaderInstance_ND = Instantiate(ControllerLoader_ND); this.loaderInstance_ND.SetActive(true); } }
- LoaderInstance will be destroyed and set to null when one of the controllers is disconnected.
void OnDisable() { WaveVR_Utils.Event.Remove (WaveVR_Utils.Event.CONTROLLER_MODEL_UNLOADED, OnControllerUnloaded); } #endregion void OnControllerUnloaded(params object[] args) { WaveVR_Controller.EDeviceType _type = (WaveVR_Controller.EDeviceType)args[0]; switch (_type) { case WaveVR_Controller.EDeviceType.Dominant: if (this.loaderInstance_DO != null) { PrintDebugLog("OnControllerUnloaded() remove DO" + this.loaderInstance_DO.name); this.loaderInstance_DO.SetActive(false); Destroy(this.loaderInstance_DO); this.loaderInstance_DO = null; } break; case WaveVR_Controller.EDeviceType.NonDominant: if (this.loaderInstance_ND != null) { PrintDebugLog("OnControllerUnloaded() remove ND" + this.loaderInstance_ND.name); this.loaderInstance_ND.SetActive(false); Destroy(this.loaderInstance_ND); this.loaderInstance_ND = null; } break; default: break; } }
Was this helpful?
Yes
No
Submit
Thank you! Your feedback helps others to see the most helpful information.