void OnRenderObject() { if (Elements <= Feet.Length) { return; } UltiDraw.Begin(); Color[] colors = UltiDraw.GetRainbowColors(Feet.Length); for (int i = 0; i < colors.Length; i++) { colors[i] = colors[i].Darken(0.25f); } for (int i = 0; i < Feet.Length; i++) { UltiDraw.DrawSphere(Feet[i].transform.position, Quaternion.identity, 0.075f, colors[i]); } float border = 0.01f; float width = Rect.W; float height = Feet.Length * Rect.H + (Feet.Length - 1) * border / 2f; UltiDraw.DrawGUIRectangle(Rect.GetPosition(), new Vector2(width, height), UltiDraw.DarkGrey.Transparent(0.75f), 0.5f * border, UltiDraw.BlackGrey); float pivot = 0.5f * height; for (int i = 1; i <= Feet.Length; i++) { pivot -= Rect.H / 2f; UltiDraw.DrawGUIRectangle(Rect.GetPosition() + new Vector2(0f, pivot), new Vector2(Rect.W, Rect.H), UltiDraw.White.Transparent(0.5f)); for (int j = 0; j < Positions[i - 1].Count; j++) { float p = (float)j / (float)(Positions[i - 1].Count - 1); p = Utility.Normalise(p, 0f, 1f, 0.5f * Thickness / Rect.W, (Rect.W - 0.5f * Thickness) / Rect.W); float x = Rect.X - 0.5f * Rect.W + p * Rect.W; float yTop = pivot + Rect.H / 2f; float yBot = pivot - Rect.H / 2f; float h = Positions[i - 1][j].y - Utility.GetHeight(Positions[i - 1][j], LayerMask.GetMask("Ground")); if (h < Thresholds[i - 1]) { UltiDraw.DrawGUILine(new Vector2(x, Rect.Y + yTop), new Vector2(x, Rect.Y + yBot), Thickness, colors[i - 1]); } } pivot -= border / 2f; pivot -= Rect.H / 2f; } UltiDraw.End(); }
void OnRenderObject() { if (!Application.isPlaying) { return; } if (!Visualise) { return; } if (!Setup()) { return; } if (Background.GetSize() != Vector2.zero) { UltiDraw.Begin(); UltiDraw.DrawGUIRectangle(Background.GetPosition(), Background.GetSize(), Color.white); UltiDraw.End(); } switch (Mode) { case MODE.Function: DrawFunction(); break; case MODE.Graph: DrawGraph(); break; } }
private void DrawFunction() { UltiDraw.Begin(); Color[] colors = UltiDraw.GetRainbowColors(Values.Length); List <float[]> functions = new List <float[]>(); float min = float.MaxValue; float max = float.MinValue; for (int i = 0; i < Values.Length; i++) { float[] values = Values[i].ToArray(); min = Mathf.Min(values.Min(), min); max = Mathf.Max(values.Max(), max); functions.Add(values); } UltiDraw.DrawGUIFunctions(Rect.GetPosition(), Rect.GetSize(), functions, min, max, 0.001f, UltiDraw.White, colors, 0.001f, UltiDraw.DarkGrey); UltiDraw.End(); }
public void DrawDistribution(Color color, UltiDraw.GUIRect rect) { float max = Distances.Max(); float[] distances = new float[Distances.Length]; for (int i = 0; i < distances.Length; i++) { distances[i] = Utility.Normalise(Distances[i], 0f, max, 1f, 0f); } UltiDraw.Begin(); UltiDraw.DrawGUIFunction(rect.GetPosition(), rect.GetSize(), distances, 0f, 1f, UltiDraw.White, color); UltiDraw.End(); }
public void DrawDistribution(Color color, UltiDraw.GUIRect rect) { UltiDraw.Begin(); UltiDraw.DrawGUIFunction(rect.GetPosition(), rect.GetSize(), Occupancies, 0f, 1f, UltiDraw.White, color); UltiDraw.End(); }