Пример #1
0
 protected virtual void Update()
 {
     if (!_canvas.worldCamera)
     {
         _canvas.worldCamera = QuickVRCameraController.GetCamera();
     }
 }
Пример #2
0
        protected virtual Ray ComputeRay()
        {
            if (!QuickVRManager.IsXREnabled() && GetVRCursor(Role.Head) == this)
            {
                return(QuickVRCameraController.GetCamera().ScreenPointToRay(new Vector3(_mouse.position.x.ReadValue(), _mouse.position.y.ReadValue())));
            }

            return(new Ray(transform.position, _CursorTransform.position - transform.position));
        }
Пример #3
0
        public virtual void ResetPosition()
        {
            Animator animator = QuickSingletonManager.GetInstance <QuickVRManager>().GetAnimatorTarget();
            //Vector3 fwd = animator.transform.forward;
            Vector3 fwd = Vector3.ProjectOnPlane(QuickVRCameraController.GetCamera().transform.forward, animator.transform.up);

            transform.position = animator.GetBoneTransform(HumanBodyBones.Head).position + fwd * 3;
            transform.forward  = fwd;
        }
Пример #4
0
        protected new void Start()
        {
            Camera cam = QuickVRCameraController.GetCamera();

            cameraGameObject        = cam.gameObject;
            cameraFloorOffsetObject = cam.transform.parent.gameObject;

            if (!rig)
            {
                rig = gameObject;
            }
        }
Пример #5
0
        protected virtual void OnEndMove(LocomotionSystem lSystem)
        {
            Animator animator = _vrManager.GetAnimatorTarget();
            Camera   cam      = QuickVRCameraController.GetCamera();

            if (animator && cam)
            {
                QuickVRPlayArea playArea = QuickSingletonManager.GetInstance <QuickVRPlayArea>();
                Transform       tmp      = playArea.transform.parent;
                playArea.transform.parent = null;

                Vector3 fwd       = animator.transform.forward;
                Vector3 rotAxis   = animator.transform.up;
                Vector3 targetFwd = Vector3.ProjectOnPlane(cam.transform.forward, rotAxis);

                animator.GetBoneTransform(HumanBodyBones.Head).Rotate(rotAxis, Vector3.SignedAngle(targetFwd, fwd, rotAxis), Space.World);
                animator.transform.forward = targetFwd;

                playArea.transform.parent = tmp;
            }
        }