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(); } }