private void Update()
 {
     if (UseCardboardHeadTracker && CardboardManager.isCardboardViewOn)
     {
         Pose headPose = CardboardManager.GetHeadPose();
         CardboardHeadTracker.UpdatePose();
         transform.localPosition = headPose.position;
         transform.localRotation = headPose.rotation;
     }
 }
        /// <summary>
        /// Gets the current head tracker pose
        /// If withUpdate is set to false, this method will return the pose from the last update
        /// </summary>
        /// <param name="withUpdate"></param>
        /// <returns></returns>
        public static Pose GetHeadPose(bool withUpdate = true)
        {
            if (withUpdate)
            {
                CardboardHeadTracker.UpdatePose();
            }

            headPoseTemp.position = CardboardHeadTracker.trackerUnityPosition;
            headPoseTemp.rotation = CardboardHeadTracker.trackerUnityRotation;

            return(headPoseTemp);
        }
        /// <summary>
        /// Initializes the Cardboard session
        /// </summary>
        public static void InitCardboard()
        {
            if (!initiated)
            {
                #if UNITY_ANDROID
                CardboardAndroidInitialization.InitAndroid();
                #endif

                CardboardHeadTracker.CreateTracker();
                CardboardHeadTracker.ResumeTracker();

                CardboardQrCode.RegisterObserver();
                Application.quitting += () => {
                    CardboardQrCode.DeRegisterObserver();
                };
                initiated = true;
            }

            RefreshParameters();
        }
 /// <summary>
 /// Recenters the camera in the head tracker
 /// </summary>
 /// <param name="horizontalOnly"></param>
 public static void RecenterCamera(bool horizontalOnly = true)
 {
     CardboardHeadTracker.RecenterCamera(horizontalOnly);
 }