Ejemplo n.º 1
0
        public override void StartController(InstantVR ivr)
        {
            extension = ivr.GetComponent <IVR_Animator>();
            base.StartController(ivr);

            startHipFootL = ivr.hipTarget.InverseTransformPoint(ivr.leftFootTarget.position);
            startHipFootR = ivr.hipTarget.InverseTransformPoint(ivr.rightFootTarget.position);

            if (transform == ivr.leftFootTarget)
            {
                isLeftFoot         = true;
                leftFoot           = this;
                rightFoot          = ivr.rightFootTarget.GetComponent <IVR_AnimatorFoot>();
                leftFootAnimation  = gameObject.AddComponent <IVR_Animate>();
                lastPos            = transform.position;
                startHipFoot       = startHipFootL;
                localStartPosition = ivr.transform.InverseTransformPoint(ivr.leftFootTarget.position);
            }
            else
            {
                rightFoot          = this;
                leftFoot           = ivr.leftFootTarget.GetComponent <IVR_AnimatorFoot>();
                rightFootAnimation = gameObject.AddComponent <IVR_Animate>();
                lastPos            = transform.position;
                startHipFoot       = startHipFootR;
                localStartPosition = ivr.transform.InverseTransformPoint(ivr.rightFootTarget.position);
            }

            startFootLposition = ivr.leftFootTarget.position - transform.position;
            startFootRposition = ivr.rightFootTarget.position - transform.position;

            lastHipPosition = ivr.hipTarget.position;
        }
        public override void StartController(InstantVR ivr)
        {
            extension = ivr.GetComponent <IVR_Traditional>();
            base.StartController(ivr);

            controller = Controllers.GetController(0);
        }
Ejemplo n.º 3
0
        public override void StartMovements(InstantVR ivr)
        {
            base.StartMovements(ivr);

            Camera headCamera = ivr.GetComponentInChildren <Camera>();

            headcam = headCamera.transform;

            if (interaction != InteractionType.None)
            {
                inputModule = ivr.GetComponent <IVR_Interaction>();
                if (inputModule == null)
                {
                    EventSystem eventSystem = FindObjectOfType <EventSystem>();
                    if (eventSystem != null)
                    {
                        DestroyImmediate(eventSystem.gameObject);
                    }
                    inputModule = ivr.gameObject.AddComponent <IVR_Interaction>();
                }

                inputModule.EnableGazeInputModule(headcam, controllerSide, activationButton, autoActivation);
            }

            if (interaction != InteractionType.None && focusPointObj == null)
            {
                focusPointObj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                focusPointObj.transform.localScale = new Vector3(0.05f, 0.05f, 0.05f);
                Destroy(focusPointObj.GetComponent <Collider>());
            }
        }
Ejemplo n.º 4
0
        //[HideInInspector]
        //private IVR_HandMovements handMovements;

        public override void StartController(InstantVR ivr)
        {
            extension = ivr.GetComponent <IVR_Animator>();
            base.StartController(ivr);

            animatorHip     = ivr.hipTarget.GetComponent <IVR_AnimatorHip>();
            lastHipPosition = ivr.hipTarget.position;

            //handMovements = GetComponent<IVR_HandMovements>();

            hip2hand = Quaternion.Inverse(ivr.transform.rotation) * (ivr.hipTarget.position - this.transform.position);
            if (this.transform == ivr.leftHandTarget)
            {
                foot2hand      = Quaternion.Inverse(ivr.transform.rotation) * (ivr.leftHandTarget.position - ivr.rightFootTarget.position);
                footController = ivr.rightFootTarget.GetComponent <IVR_Controller>();
            }
            else
            {
                foot2hand      = Quaternion.Inverse(ivr.transform.rotation) * (ivr.rightHandTarget.position - ivr.leftFootTarget.position);
                footController = ivr.leftFootTarget.GetComponent <IVR_Controller>();
            }

            if (footController.GetType() == typeof(IVR_AnimatorFoot) && !footController.enabled)
            {
                footController = null;
            }
        }
Ejemplo n.º 5
0
        public override void StartController(InstantVR ivr)
        {
            extension = ivr.GetComponent <IVR_Traditional>();
            base.StartController(ivr);
            tracking = true;

            handAnimator = GetComponent <IVR_AnimatorHand>();
        }
Ejemplo n.º 6
0
        //    private IVR.HeadMovementsBase headMovements;
        //    /private Transform cameraTransform;

        public override void StartController(InstantVR ivr)
        {
            extension = ivr.GetComponent <IVR_Animator>();
            base.StartController(ivr);
            tracking = true;

            //        headMovements = GetComponent<IVR.HeadMovementsBase>();
            //        cameraTransform = ivr.GetComponentInChildren<Camera>().transform;
        }
Ejemplo n.º 7
0
        public override void StartController(InstantVR ivr)
        {
            extension = ivr.GetComponent <IVR_Traditional>();
            base.StartController(ivr);
            tracking = true;

            handAnimator = GetComponent <IVR_AnimatorHand>();
#if INSTANTVR_ADVANCED
            handMovements = GetComponent <IVR_HandMovementsBase>();
#endif
        }
Ejemplo n.º 8
0
        public override void StartController(InstantVR ivr)
        {
            extension = ivr.GetComponent <IVR_Animator>();
            base.StartController(ivr);

            headStartPosition = ivr.headTarget.position - ivr.transform.position;
            spineLength       = Vector3.Distance(ivr.headTarget.position, ivr.hipTarget.position);

            controllerPosition = startPosition;
            controllerRotation = startRotation;
        }
Ejemplo n.º 9
0
        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
        }
Ejemplo n.º 10
0
        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
            }
        }
Ejemplo n.º 11
0
        public override void StartController(InstantVR ivr)
        {
            if (extension == null)
            {
                extension = ivr.GetComponent <IVR_UnityVR>();
            }
            base.StartController(ivr);

            if (VRSettings.enabled)
            {
                extension.present = VRDevice.isPresent;

                Camera camera = transform.GetComponentInChildren <Camera>();
                if (camera != null)
                {
                    headcam         = camera.transform;
                    localNeckOffset = headcam.localPosition;

                    headcamRoot = new GameObject("HeadcamRoot");
                    headcamRoot.transform.parent   = ivr.transform;
                    headcamRoot.transform.position = transform.position;
                    headcamRoot.transform.rotation = transform.rotation;

                    headcam.parent = headcamRoot.transform;

                    base.StartController(ivr);
                    controllerPosition = startPosition - extension.trackerPosition;
                    controllerRotation = Quaternion.identity;

                    OVRManager ovrManager = this.gameObject.AddComponent <OVRManager>();
                    ovrManager.resetTrackerOnLoad = true;

                    positionTracking = false;
#if INSTANTVR_ADVANCED
                    kinect2Head = GetComponent <IVR_Kinect2Head>();
                    vicoVRHead  = GetComponent <IVR_VicoVRHead>();
#endif
                }
            }
        }
Ejemplo n.º 12
0
        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
                }
            }
        }