Example #1
0
 void OnUpChange()
 {
     if (points.Count > 0)
     {
         BreathPoint p = new BreathPoint();
         p.value = points [points.Count - 1].y;
         p.time  = time;
         breathPoints.Add(p);
     }
 }
Example #2
0
    void setBreathValue()
    {
        if (points.Count > 0 && breathPoints.Count > 1)
        {
            BreathPoint p  = breathPoints [breathPoints.Count - 1];
            BreathPoint pp = breathPoints [breathPoints.Count - 2];

            float breathDiff = points [points.Count - 1].y - p.value;
            float timeDiff   = p.time - pp.time;

            float prevPointY = points [points.Count - breathLineDistance].y;
            float curPointY  = points [points.Count - 1].y;
            float lineDiff   = curPointY - prevPointY;

            if (Mathf.Abs(breathDiff) < movementTreshold && Mathf.Abs(timeDiff) > timeTreshold)
            {
                if (lineDiff > 0 && Mathf.Abs(lineDiff) > breathLineTreshold)
                {
                    breathState = BreathState.BreathIn;
                    isBreathIn  = true;
                }
                else if (Mathf.Abs(lineDiff) > breathLineTreshold)
                {
                    breathState = BreathState.BreathOut;
                    isBreathIn  = false;
                }
                else if (isUp)
                {
                    breathState = BreathState.BreathInHold;
                    isBreathIn  = true;
                }
                else
                {
                    breathState = BreathState.BreathOutHold;
                    isBreathIn  = false;
                }
                breathValue = (1 - smoothBreathValue) * breathDiff + smoothBreathValue * breathValue;
            }
            else
            {
                // movement
                breathState = BreathState.Move;
            }

            UpdateBreathStateChange();
        }
    }