void SetFocusCameraPosition(XRRig xrRig, Vector3 focusPoint)
        {
            var cameraPlane     = new Plane(xrRig.transform.forward, xrRig.transform.position);
            var targetCameraPos = cameraPlane.ClosestPointOnPlane(focusPoint);

            xrRig.MoveCameraToWorldLocation(targetCameraPos);
        }
Ejemplo n.º 2
0
        void OnCameraTransformInfoChanged(CameraTransformInfo newData)
        {
            if (m_XrRig == null)
            {
                return;
            }

            m_XrRig.MoveCameraToWorldLocation(newData.position);
            var rotation = newData.rotation.y - m_XrRig.transform.eulerAngles.y;

            m_XrRig.RotateAroundCameraUsingRigUp(rotation);
        }
Ejemplo n.º 3
0
        void OnProjectStateDataChanged(UIProjectStateData data)
        {
            if (m_XrRig == null || m_CameraTransformInfo == data.cameraTransformInfo)
            {
                return;
            }

            m_XrRig.MoveCameraToWorldLocation(data.cameraTransformInfo.position);
            var rotation = data.cameraTransformInfo.rotation.y - m_XrRig.transform.eulerAngles.y;

            m_XrRig.RotateAroundCameraUsingRigUp(rotation);

            m_CameraTransformInfo = data.cameraTransformInfo;
        }
        /// <summary>
        /// Sets a new position and rotation for the XR Rig.
        /// </summary>
        /// <param name="destinationPosition">Target position.</param>
        /// <param name="destinationRotation">Target rotation.</param>
        public void SetRigPositionAndRotation(Vector3 destinationPosition, Quaternion destinationRotation)
        {
            if (CanBeginLocomotion() == false)
            {
                return;
            }

            XRRig xrRig = system.xrRig;

            if (xrRig != null)
            {
                Vector3 heightAdjustment  = xrRig.rig.transform.up * xrRig.cameraInRigSpaceHeight;
                Vector3 cameraDestination = destinationPosition + heightAdjustment;

                xrRig.MatchRigUpCameraForward(destinationRotation * Vector3.up, destinationRotation * Vector3.forward);
                xrRig.MoveCameraToWorldLocation(cameraDestination);
            }
        }