Neodroid  0.2.0
Machine Learning Environment Prototyping Tool
GuiDraw.cs
Go to the documentation of this file.
1 using UnityEngine;
2 
3 namespace droid.Runtime.Utilities.Misc.Drawing {
6  public static partial class NeodroidDrawingUtilities {
7  static Texture2D _s_line_tex;
8 
9  static NeodroidDrawingUtilities() {
10  _s_line_tex = new Texture2D(1, 3, TextureFormat.ARGB32, true);
11  _s_line_tex.SetPixel(0, 0, new Color(1, 1, 1, 0));
12  _s_line_tex.SetPixel(0, 1, Color.white);
13  _s_line_tex.SetPixel(0, 2, new Color(1, 1, 1, 0));
14  _s_line_tex.Apply();
15  }
16 
17  public static void DrawLine(Vector2 p_point_a, Vector2 p_point_b, float p_width) {
18  var save_matrix = GUI.matrix;
19  var save_color = GUI.color;
20 
21  var delta = p_point_b - p_point_a;
22  GUIUtility.ScaleAroundPivot(new Vector2(delta.magnitude, p_width), Vector2.zero);
23  GUIUtility.RotateAroundPivot(Vector2.Angle(delta, Vector2.right) * Mathf.Sign(delta.y), Vector2.zero);
24  GUI.matrix = Matrix4x4.TRS(p_point_a, Quaternion.identity, Vector3.one) * GUI.matrix;
25 
26  GUI.DrawTexture(new Rect(Vector2.zero, Vector2.one), _s_line_tex);
27 
28  GUI.matrix = save_matrix;
29  GUI.color = save_color;
30  }
31  }
32 }