1.水平布局
在编辑器的开发中,如果我们想将一些GUI元素绘制在一个水平方向上,需要用到GUILayout中的一对方法:
代码语言:javascript复制GUILayout.BeginHorizontal();
// GUI Element1st
// GUI Element2nd
// GUI Element3rd
GUILayout.EndHorizontal();
这两个方法一定是成对出现的,有了上述布局后,我们绘制的内容类似于下图:
2.垂直布局
如果我们想将这些元素绘制在一个垂直方向上,则需要用到GUILayout中的另一对方法:
代码语言:javascript复制GUILayout.BeginVertical();
// GUI Element1st
// GUI Element2nd
// GUI Element3rd
GUILayout.EndVertical();
那么绘制的内容类似于下图:
3.复合布局
例如,我们想在水平布局中嵌套垂直布局
代码语言:javascript复制GUILayout.BeginHorizontal();
GUILayout.BeginVertical();
GUILayout.Button("Element1");
GUILayout.Button("Element2");
GUILayout.EndVertical();
GUILayout.BeginVertical();
GUILayout.Button("Element3");
GUILayout.Button("Element4");
GUILayout.EndVertical();
GUILayout.EndHorizontal();
上例中,我们在一个水平布局中嵌套了两个垂直布局,每个垂直布局中垂直绘制了两个Button按钮,最终如下图所示:
4.滑动列表
如果我们要绘制大量的可能会超出范围的元素,需要用到滑动列表
代码语言:javascript复制scroll = GUILayout.BeginScrollView(scroll);
//Element1
//Element2
//...
//...
//Element...
GUILayout.EndScrollView();
使用滑动列表时需要传入一个Vector2类型变量同时进行接收,用来获取滑动列表滑动的位置。
除了GUILayout类,EditorGUILayout类中包含同样的上述的布局方法。