// Update is called once per frame void Update() { if (sm != null) { /* Wait until any frame data is available */ if (sm.AcquireFrame(false, 0) == pxcmStatus.PXCM_STATUS_NO_ERROR) { /* Retrieve latest extremity data */ if (hand_data.Update() == pxcmStatus.PXCM_STATUS_NO_ERROR) { ; } { TrackExtremity(hand_data); if (hand_data.QueryHandData(PXCMHandData.AccessOrderType.ACCESS_ORDER_BY_TIME, 0, out handData) == pxcmStatus.PXCM_STATUS_NO_ERROR) { if (handData.QueryExtremityPoint(PXCMHandData.ExtremityType.EXTREMITY_LEFTMOST, out extremityPoint) == pxcmStatus.PXCM_STATUS_NO_ERROR) { Debug.Log("LeftMost Extremity Position = " + extremityPoint.pointWorld); } } } /* Now, release the current frame so we can process the next frame */ sm.ReleaseFrame(); } } }