Example #1
0
 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()}");
         }
     }
 }
Example #2
0
        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));
        }
Example #3
0
        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));
        }