Beispiel #1
0
 // Update is called once per frame
 void Update()
 {
     if (PVRSession.instance.ready)
     {
         if (left != null)
         {
             if (PVRSession.instance.isDeviceConnected(pvrTrackedDeviceType.pvrTrackedDevice_LeftController))
             {
                 pvrPoseStatef poseState = PVRSession.instance.handsPoseState[0];
                 if (poseState.StatusFlags != 0)
                 {
                     left.SetActive(true);
                 }
                 else
                 {
                     left.SetActive(false);
                 }
             }
             else
             {
                 left.SetActive(false);
             }
         }
         if (right != null)
         {
             if (PVRSession.instance.isDeviceConnected(pvrTrackedDeviceType.pvrTrackedDevice_RightController))
             {
                 pvrPoseStatef poseState = PVRSession.instance.handsPoseState[1];
                 if (poseState.StatusFlags != 0)
                 {
                     right.SetActive(true);
                 }
                 else
                 {
                     right.SetActive(false);
                 }
             }
             else
             {
                 right.SetActive(false);
             }
         }
     }
     else
     {
         if (left != null)
         {
             left.SetActive(false);
         }
         if (right != null)
         {
             right.SetActive(false);
         }
     }
 }
Beispiel #2
0
            // Update is called once per frame
            void Update()
            {
                if (PVRSession.instance.ready)
                {
                    uint        StatusFlags = 0;
                    pvrVector3f position;
                    pvrQuatf    rotation;

                    if (tracking == TrackPart.LeftHand)
                    {
                        pvrPoseStatef poseState = PVRSession.instance.handsPoseState[0];
                        StatusFlags = poseState.StatusFlags;
                        position    = poseState.ThePose.Position;
                        rotation    = poseState.ThePose.Orientation;
                    }
                    else if (tracking == TrackPart.RightHand)
                    {
                        pvrPoseStatef poseState = PVRSession.instance.handsPoseState[1];
                        StatusFlags = poseState.StatusFlags;
                        position    = poseState.ThePose.Position;
                        rotation    = poseState.ThePose.Orientation;
                    }
                    else
                    {
                        pvrPoseStatef poseState = PVRSession.instance.headPoseState;
                        StatusFlags = poseState.StatusFlags;
                        position    = poseState.ThePose.Position;
                        rotation    = poseState.ThePose.Orientation;
                    }
                    if (StatusFlags != 0)
                    {
                        transform.localPosition = Math.ConvertPosition(position);
                        transform.localRotation = Math.ConvertOrientation(rotation);
                    }
                }
            }