Пример #1
0
 private void OnDestroy()
 {
     //turn off hand tracking:
     if (MLHandTracking.IsStarted)
     {
         MLHandTracking.Stop();
     }
 }
Пример #2
0
 /// <summary>
 /// Stops MLHandTracking if it has been started.
 /// </summary>
 public static void Stop()
 {
     #if PLATFORM_LUMIN
     if (MLHandTracking.IsStarted)
     {
         MLHandTracking.Stop();
     }
     #endif
 }
        private void StopMLInput()
        {
            RemoveAllHandDevices();

            //turn off hand tracking:
            if (MLHandTracking.IsStarted)
            {
                MLHandTracking.Stop();
            }
            IsReady = false;
        }
Пример #4
0
 private void Start()
 {
     MLHandTracking.Start();
     _gestures    = new MLHandTracking.HandKeyPose[5];
     _gestures[0] = MLHandTracking.HandKeyPose.Ok;
     _gestures[1] = MLHandTracking.HandKeyPose.Finger;
     _gestures[2] = MLHandTracking.HandKeyPose.OpenHand;
     _gestures[3] = MLHandTracking.HandKeyPose.Fist;
     _gestures[4] = MLHandTracking.HandKeyPose.Thumb;
     MLHandTracking.KeyPoseManager.EnableKeyPoses(_gestures, true, false);
     pos = new Vector3[3];
 }
    private MLHandTracking.HandKeyPose[] gestures; // Holds the different hand poses we will look for.


    void Awake()
    {
        PNConfiguration pnConfiguration = new PNConfiguration();

        pnConfiguration.PublishKey   = "pub-c-270dafe4-6c23-47e4-b9eb-62d9590a9846";
        pnConfiguration.SubscribeKey = "sub-c-2e822568-1d76-11eb-8a07-eaf684f78515";
        pnConfiguration.Secure       = true;
        pubnub = new PubNub(pnConfiguration);

        MLHandTracking.Start();                          // Start the hand tracking.
        gestures    = new MLHandTracking.HandKeyPose[3]; //Assign the gestures we will look for.
        gestures[0] = MLHandTracking.HandKeyPose.Fist;
        gestures[1] = MLHandTracking.HandKeyPose.Thumb;
        gestures[2] = MLHandTracking.HandKeyPose.Finger;
        MLHandTracking.KeyPoseManager.EnableKeyPoses(gestures, true, false); // Enable the hand poses.
    }
    // Start is called before the first frame update
    void Start()
    {
        MLHandTracking.Start();                            // Start the hand tracking.
        m_gestures    = new MLHandTracking.HandKeyPose[7]; //Assign the gestures we will look for.
        m_gestures[0] = MLHandTracking.HandKeyPose.Fist;
        m_gestures[1] = MLHandTracking.HandKeyPose.Thumb;
        m_gestures[2] = MLHandTracking.HandKeyPose.Finger;
        m_gestures[3] = MLHandTracking.HandKeyPose.OpenHand;
        m_gestures[4] = MLHandTracking.HandKeyPose.Ok;
        m_gestures[5] = MLHandTracking.HandKeyPose.NoPose;
        m_gestures[6] = MLHandTracking.HandKeyPose.NoHand;

        MLHandTracking.KeyPoseManager.EnableKeyPoses(m_gestures, true, false); // Enable the hand poses.

        EnableRaycast(_raycastHead);
    }
 private bool StartMLInput()
 {
     if (!MLHandTracking.IsStarted)
     {
         if (!MLHandTracking.Start().IsOk)
         {
             Debug.LogError("Failed to initialize ML Hand Tracking");
         }
         else
         {
             MLHandTracking.KeyPoseManager.SetKeyPointsFilterLevel(MLHandTracking.KeyPointFilterLevel.Smoothed);
             MLHandTracking.KeyPoseManager.EnableKeyPoses(supportedGestures, true, false);
         }
         return(false);
     }
     else
     {
         return(true);
     }
 }
Пример #8
0
        /// <summary>
        /// Starts up MLHandTracking.
        /// </summary>
        /// <param name="initializeValues">Bool that determines if MLHandTracking should automatically run with all poses and high filter levels.</param>
        public static MLResult Start(bool initializeValues = false)
        {
            #if PLATFORM_LUMIN
            MLResult _result = MLHandTracking.Start();
            if (!_result.IsOk)
            {
                Debug.LogErrorFormat("Error: MLHandTrackingStarterKit failed starting MLHandTracking. Reason: {0}", _result);
            }

            if (initializeValues)
            {
                bool success = false;

                success = EnableKeyPoses();
                if (!success)
                {
                    MLHandTracking.Stop();
                    _result = MLResult.Create(MLResult.Code.UnspecifiedFailure, "MLHandTrackingStarterKit failed to start correctly because MLHandTrackingStarterKit.EnablePoses failed because MLHandTracking.KeyPoseManager.EnableKeyPoses failed.");
                }

                success = SetKeyPointsFilterLevel(MLHandTracking.KeyPointFilterLevel.ExtraSmoothed);
                if (!success)
                {
                    MLHandTracking.Stop();
                    _result = MLResult.Create(MLResult.Code.UnspecifiedFailure, "MLHandTrackingStarterKit failed to start correctly because MLHandTrackingStarterKit.SetKeyPointsFilterLevel failed because MLHandTracking.KeyPoseManager.SetKeyPointsFilterLevel failed.");
                }

                success = SetPoseFilterLevel(MLHandTracking.PoseFilterLevel.ExtraRobust);
                if (!success)
                {
                    MLHandTracking.Stop();
                    _result = MLResult.Create(MLResult.Code.UnspecifiedFailure, "MLHandTrackingStarterKit failed to start correctly because MLHandTrackingStarterKit.SetPoseFilterLevel failed because MLHandTracking.KeyPoseManager.SetPoseFilterLevel failed.");
                }
            }

            return(_result);
            #else
            return(new MLResult());
            #endif
        }
        //Init:
        private void Start()
        {
            //turn on inputs:
            if (!MLHandTracking.IsStarted)
            {
                if (!MLHandTracking.Start().IsOk)
                {
                    enabled = false;
                }
                else
                {
                    MLHandTracking.KeyPoseManager.SetKeyPointsFilterLevel(MLHandTracking.KeyPointFilterLevel.Smoothed);
                }
            }

            //setup hand tracking:
            List <MLHandTracking.HandKeyPose> handPoses = new List <MLHandTracking.HandKeyPose>();

            handPoses.Add(MLHandTracking.HandKeyPose.Finger);
            handPoses.Add(MLHandTracking.HandKeyPose.Pinch);
            handPoses.Add(MLHandTracking.HandKeyPose.Fist);
            handPoses.Add(MLHandTracking.HandKeyPose.Thumb);
            handPoses.Add(MLHandTracking.HandKeyPose.L);
            handPoses.Add(MLHandTracking.HandKeyPose.OpenHand);
            handPoses.Add(MLHandTracking.HandKeyPose.Ok);
            handPoses.Add(MLHandTracking.HandKeyPose.C);
            handPoses.Add(MLHandTracking.HandKeyPose.NoPose);
            MLHandTracking.KeyPoseManager.EnableKeyPoses(handPoses.ToArray(), true, false);

            _right = new ManagedHand(MLHandTracking.Right, this);
            _left  = new ManagedHand(MLHandTracking.Left, this);

            //ready:
            Ready = true;
            OnReady?.Invoke();
        }
Пример #10
0
 private void OnDestroy()
 {
     MLHandTracking.Stop();
 }