Exemple #1
0
 private void OnDiscarded(KinematicsTracker palm)
 {
     if (GameFSM.Instance.Current.Hand.Count > HandIndex && Cmp.IsSelected)
     {
         GameFSM.Instance.StartCoroutine(DiscardCoroutine(palm.GetAverageVelocity(InputController.Instance.GestureDuration).x));
     }
 }
Exemple #2
0
    void Update()
    {
        if (DisableAllGestures)
        {
            return;
        }

        for (int i = 0; i < PalmTrackers.Length; ++i)
        {
            KinematicsTracker palmT   = PalmTrackers[i],
                              fingerT = FingerTrackers[i];
            if (palmT != null)
            {
                palmT.Debugging = Debugging;

                if (trackerCalmTime[i] <= 0.0f)
                {
                    Vector3 avgVel    = palmT.GetAverageVelocity(GestureDuration);
                    Vector3 palmPos   = palmT.PositionLogs[palmT.GetLogIndex(0)],
                            fingerPos = fingerT.PositionLogs[fingerT.GetLogIndex(0)];

                    if (Mathf.Abs(avgVel.x) >= VelThreshold)
                    {
                        SweepSideGesture(palmT);
                        trackerCalmTime[i] = CalmTime;
                    }
                    else if (Mathf.Abs(avgVel.y) >= VelThreshold)
                    {
                        SweepVerticalGesture(palmT);
                        trackerCalmTime[i] = CalmTime;
                    }
                    else if (Mathf.Abs(avgVel.z) >= VelThreshold)
                    {
                        SweepForwardGesture(palmT);
                        trackerCalmTime[i] = CalmTime;
                    }
                    else if ((Horz(palmPos) - Horz(fingerPos)).sqrMagnitude <= (FistCloseDistThreshold * FistCloseDistThreshold))
                    {
                        fistCloseTime[i] += Time.deltaTime;
                        if (fistCloseTime[i] >= CloseFistTime)
                        {
                            fistCloseTime[i]   = 0.0f;
                            trackerCalmTime[i] = CalmTime;
                            FistCloseGesture(palmT);
                        }
                    }
                }
                else
                {
                    trackerCalmTime[i] -= Time.deltaTime;
                }
            }
        }
    }
Exemple #3
0
 private void OnDiscarded(KinematicsTracker palm)
 {
     if (GameFSM.Instance.Current.Hand.Count > HandIndex && Cmp.IsSelected)
     {
         GameFSM.Instance.StartCoroutine(DiscardCoroutine(palm.GetAverageVelocity(InputController.Instance.GestureDuration).x));
     }
 }