Во-первых - GUI.DragWindow(); должна быть в конце функции.
Во вторых что за прямоугольник с нулевой шириной: Rect (0, 0, 0, 400)
Вообще не пользуюсь такими методами.
А пользуюсь Layout-методами отрисовки GUI. Они сами считают под себя нужное место и если необходимо, то можно указывать дополнительные параметры типа GUILayout.Width, GUILayout.Height и т.д.