public class DrawLineWindow : EditorWindow
{
[MenuItem("Tools/测试")]
public static void ShowWindow()
{
DrawLineWindow window = EditorWindow.GetWindow(typeof(DrawLineWindow)) as DrawLineWindow;
window.Init();
}
private Material lineMaterial;
Rect windowRect = new Rect(20, 20, 80, 100);
int count = 2;
List<Rect> rectList = new List<Rect>();
void Init()
{
rectList.Clear();
for (int i = 0; i < count; i++)
{
rectList.Add(new Rect(20, 20, 80, 100));
}
}
void OnGUI()
{
if (!lineMaterial)
{
lineMaterial = new Material(Shader.Find("Mobile/VertexLit"));
}
BeginWindows();
for(int i = 0; i < count; i++)
{
rectList[i] = GUI.Window(i, rectList[i], DrawWindow, "Start");
}
EndWindows();
GL.PushMatrix(); //保存当前Matirx
lineMaterial.SetPass(0); //刷新当前材质
GL.LoadPixelMatrix();//设置pixelMatrix
GL.Color(Color.yellow);
GL.Begin(GL.LINES);
GL.Vertex3(rectList[0].x, rectList[0].y, 0);
GL.Vertex3(rectList[1].x, rectList[1].y, 0);
GL.End();
GL.PopMatrix();//读取之前的Matrix
}
void DrawWindow(int windowID)
{
GUILayout.Button("Start");
GUI.DragWindow();
}
}
