public override void StartController(InstantVR ivr) { base.StartController(ivr); #if UNITY_ANDROID if (extension == null) { extension = ivr.GetComponent <IVR_Cardboard>(); } Camera camera = CheckCamera(); if (camera != null) { cameraTransform = camera.transform; neck2eyes = HeadUtils.GetNeckEyeDelta(ivr); cameraTransform.gameObject.SetActive(false); GvrViewer cardboardPrefab = Resources.Load <GvrViewer>("CardboardPrefab"); cardboard = Instantiate(cardboardPrefab); if (cardboard == null) { Debug.LogError("Could not instantiate Cardboard. CardboardCameraRig is missing?"); } else { cameraRoot = cardboard.gameObject; cameraRoot.transform.parent = ivr.transform; cameraRoot.transform.position = transform.position; cameraRoot.transform.rotation = ivr.transform.rotation; GvrHead gvrHead = cardboard.GetComponentInChildren <GvrHead>(); if (gvrHead != null) { camera = Camera.main; cameraTransform = Camera.main.transform; } } } controller = Controllers.GetController(0); #if INSTANTVR_ADVANCED vicoVRHead = GetComponent <IVR_VicoVRHead>(); #endif #endif }
private void UpdateHeadTarget() { if (OVRManager.tracker.isPositionTracked) { if (extension.trackerPosition.magnitude < 0.0001F && extension.trackerEulerAngles.magnitude < 0.0001F) { extension.trackerPosition = OVRManager.tracker.GetPose().position; extension.trackerRotation = OVRManager.tracker.GetPose().orientation; extension.trackerEulerAngles = extension.trackerRotation.eulerAngles; } positionalTracking = true; } else { positionalTracking = false; #if INSTANTVR_ADVANCED if (kinect2Head != null && kinect2Head.isTracking()) { transform.position = kinect2Head.position; } else if (vicoVRHead != null && vicoVRHead.isTracking()) { transform.position = vicoVRHead.position; } #endif } CalculateCameraRoot(); if (selected) { if (positionalTracking) { Vector3 neckPosition = HeadUtils.CalculateNeckPosition(cameraTransform.position, cameraTransform.rotation, -head2eyes); transform.position = neckPosition; } Quaternion neckRotation = cameraTransform.rotation; transform.rotation = neckRotation; } tracking = true; }
public override void StartController(InstantVR ivr) { if (extension == null) { extension = ivr.GetComponent <IVR_UnityVR>(); } #if UNITY_IOS extension.present = true; // maybe only when GVR SDK is present? #elif UNITY_2017_2_OR_NEWER extension.present = XRDevice.isPresent; #else extension.present = VRDevice.isPresent; #endif Camera camera = CheckCamera(); if (camera != null) { cameraTransform = camera.transform; neck2eyes = HeadUtils.GetNeckEyeDelta(ivr); DeterminePlatform(); if (vrTracking) { if (!originOnFloor) { cameraRoot.transform.position = transform.position; extension.trackerPosition = cameraRoot.transform.localPosition; } cameraRoot.transform.rotation = ivr.transform.rotation; cameraTransform.SetParent(cameraRoot.transform, false); } base.StartController(ivr); #if INSTANTVR_ADVANCED #if IVR_KINECT kinect2Head = GetComponent <IVR_Kinect2Head>(); #endif #endif } }
public override void StartController(InstantVR ivr) { if (extension == null) { extension = ivr.GetComponent <IVR_UnityVR>(); } if (VRSettings.enabled) { extension.present = VRDevice.isPresent; Camera camera = CheckCamera(); if (camera != null) { cameraTransform = camera.transform; neck2eyes = HeadUtils.GetNeckEyeDelta(ivr); head2eyes = HeadUtils.GetHeadEyeDelta(ivr); DeterminePlatform(); cameraRoot = new GameObject("UnityVR Root"); cameraRoot.transform.parent = ivr.transform; #if UNITY_STANDALONE_WIN if (needsOVR || needsSteamVR) { cameraRoot.transform.position = ivr.transform.position; } else #endif cameraRoot.transform.position = transform.position; cameraRoot.transform.rotation = ivr.transform.rotation; cameraTransform.SetParent(cameraRoot.transform, false); base.StartController(ivr); if (needsOVR) { ovrManager = transform.gameObject.AddComponent <OVRManager>(); if (ovrManager != null) { ovrManager.resetTrackerOnLoad = true; #if UNITY_STANDALONE_WIN ovrManager.trackingOriginType = OVRManager.TrackingOrigin.FloorLevel; cameraTransform.localPosition = Vector3.zero; #else ovrManager.trackingOriginType = OVRManager.TrackingOrigin.EyeLevel; #endif } } if (needsSteamVR) { cameraTransform.gameObject.AddComponent <SteamVR_Camera>(); steamManager = cameraRoot.gameObject.AddComponent <SteamVR_ControllerManager>(); } #if INSTANTVR_ADVANCED kinect2Head = GetComponent <IVR_Kinect2Head>(); vicoVRHead = GetComponent <IVR_VicoVRHead>(); #endif } } }