// 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); } } }
// 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); } } }