예제 #1
0
 public static void DrawCurve(Rect r, AudioCurveRendering.AudioCurveEvaluator eval, Color curveColor)
 {
     if (Event.current.type == EventType.Repaint)
     {
         HandleUtility.ApplyWireMaterial();
         int       num        = (int)Mathf.Ceil(r.width);
         float     num2       = r.height * 0.5f;
         float     num3       = 1f / (float)(num - 1);
         Vector3[] pointCache = AudioCurveRendering.GetPointCache(num);
         for (int i = 0; i < num; i++)
         {
             pointCache[i].x = (float)i + r.x;
             pointCache[i].y = num2 - num2 * eval((float)i * num3) + r.y;
             pointCache[i].z = 0f;
         }
         GUI.BeginClip(r);
         Handles.color = curveColor;
         Handles.DrawAAPolyLine(3f, num, pointCache);
         GUI.EndClip();
     }
 }