Example #1
0
 void HandleDisplayOverlays(KinectManager manager, JointPositions positions)
 {
     if (DisplayOverlays)
     {
         if (!_displayState)
         {
             foreach (var overlay in Overlays)
             {
                 overlay.SetActive(true);
             }
             _displayState = true;
         }
         if (positions.AreAllNonZero(Overlays.GetOverlayedJoints()))
         {
             foreach (var overlay in Overlays)
             {
                 Overlays.Position(manager, positions, overlay, SmoothFactor);
             }
         }
     }
     else if (_displayState)
     {
         foreach (var overlay in Overlays)
         {
             overlay.SetActive(false);
         }
         _displayState = false;
     }
 }
Example #2
0
        public bool Update(JointPositions positions)
        {
            if (Complete)
            {
                return(Complete);
            }
            positions.InitIfNotSet(UsedJoints);
            if (!positions.AreAllNonZero(UsedJoints))
            {
                return(false);
            }

            if (!Ducked)
            {
                if (positions[Joints.LeftKnee].y < StartPositions[Joints.LeftKnee].y &&
                    Mathf.Abs(positions[Joints.LeftKnee].y - StartPositions[Joints.LeftKnee].y) >= 0.10f &&
                    positions[Joints.RightKnee].y < StartPositions[Joints.RightKnee].y &&
                    Mathf.Abs(positions[Joints.RightKnee].y - StartPositions[Joints.RightKnee].y) >= 0.10f &&
                    positions[Joints.LeftHip].y < StartPositions[Joints.LeftHip].y &&
                    Mathf.Abs(positions[Joints.LeftHip].y - StartPositions[Joints.LeftHip].y) >= 0.30f &&
                    positions[Joints.RightHip].y < StartPositions[Joints.RightHip].y &&
                    Mathf.Abs(positions[Joints.RightHip].y - StartPositions[Joints.RightHip].y) >= 0.30f
                    )
                {
                    DuckedTime      = Time.time;
                    DuckedPositions = positions;
                }
            }
            else
            {
                if (positions[Joints.LeftKnee].y > DuckedPositions[Joints.LeftKnee].y &&
                    Mathf.Abs(positions[Joints.LeftKnee].y - StartPositions[Joints.LeftKnee].y) < 0.05f &&
                    positions[Joints.RightKnee].y > DuckedPositions[Joints.RightKnee].y &&
                    Mathf.Abs(positions[Joints.RightKnee].y - StartPositions[Joints.RightKnee].y) < 0.05f &&
                    positions[Joints.LeftHip].y > DuckedPositions[Joints.LeftHip].y &&
                    Mathf.Abs(positions[Joints.LeftHip].y - StartPositions[Joints.LeftHip].y) < 0.05f &&
                    positions[Joints.RightHip].y > DuckedPositions[Joints.RightHip].y &&
                    Mathf.Abs(positions[Joints.RightHip].y - StartPositions[Joints.RightHip].y) < 0.05f
                    )
                {
                    Complete = true;
                }
            }
            return(Complete);
        }
Example #3
0
        public bool Update(JointPositions positions)
        {
            if (_skip || Complete)
            {
                return(Complete);
            }
            positions.InitIfNotSet(UsedJoints);
            if (!positions.AreAllNonZero(UsedJoints))
            {
                return(false);
            }

            var leftRightDist = Mathf.Abs(positions[Joints.LeftHand].x - positions[Joints.RightHand].x);

            if (!_handsClosed)
            {
                if (leftRightDist > 0.1f && positions[Joints.RightHand].x < positions[Joints.LeftHand].x)
                {
                    _skip = true;
                    return(false);
                }

                if (leftRightDist < 0.05f && Mathf.Abs(positions[Joints.LeftHand].y - positions[Joints.RightHand].y) < 0.05f)
                {
                    _handsClosed = true;
                    if (++_claps > 1)
                    {
                        Complete = true;
                    }
                }
            }
            else if (leftRightDist > 0.2f)
            {
                _handsClosed = false;
            }

            return(Complete);
        }