private void PollAndSendHandTrackingData(OVRPlugin.Step renderStep, OVRPlugin.Hand handType) { OVRPlugin.HandState handState = default(OVRPlugin.HandState); if (OVRPlugin.GetHandState(renderStep, handType, ref handState)) { try { SendDataUDP(XmlSerialize.Serialize(HandRelatedDataContainer.AsHandData( new HandData(renderStep, handType, handState) ))); } catch (Exception e) { Debug.Log($"Unable to send hand data: {e.ToString()}"); } } }
private IEnumerator InitializeMeshAndSend(OVRPlugin.Hand hand) { var meshType = GetHandMeshTypeFromOVRHandType(hand); if (OVRPlugin.GetMesh(meshType, out var mesh)) { try { var meshDataJson = XmlSerialize.Serialize(HandRelatedDataContainer.AsMeshData( new MeshData(meshType, mesh) )); StartCoroutine(SendDataTCP(meshDataJson)); //mesh data is too big for single UDP packet } catch (Exception e) { Debug.LogError($"Unable to send mesh data: {e.ToString()}"); } } yield return(new WaitForSeconds(WaitNSecondsBetweenHandDataInitializationIfNotReady)); }
private IEnumerator InitializeSkeletonAndSend(OVRPlugin.Hand hand) { var skeletonType = GetSkeletonTypeFromHandType(hand); if (OVRPlugin.GetSkeleton(skeletonType, out var skeleton)) { try { var skeletonDataJson = XmlSerialize.Serialize(HandRelatedDataContainer.AsSkeletonData( new SkeletonData(skeleton, skeletonType) )); StartCoroutine(SendDataTCP(skeletonDataJson)); //skeleton data is too big for single UDP packet yield break; } catch (Exception e) { Debug.Log($"Unable to send skeleton ({hand.ToString()})data: {e.ToString()}"); } } yield return(new WaitForSeconds(WaitNSecondsBetweenHandDataInitializationIfNotReady)); }