目录
1.EditorGUILayout.BeginFadeGroup(float value);
2.EditorGUILayout.BeginHorizontal EditorGUILayout.BeginVertical
3.EditorGUILayout.BeginScrollView
4.EditorGUILayout.BeginToggleGroup&&EditorGUILayout.Toggle
5.EditorGUILayout.BoundsField EditorGUILayout.BoundsIntField public static Color ColorField 等等等....
6.EditorGUILayout.DropdownButton
7.EditorGUILayout.BeginBuildTargetSelectionGrouping
8.EditorGUILayout.EnumFlagsField
11.EditorGUILayout.GetControlRect
12.EditorGUILayout.GradientField
14.EditorGUILayout.IntSlider||EditorGUILayout.Slider
15.EditorGUILayout.ObjectField
16.EditorGUILayout.PrefixLabel
17.EditorGUILayout.PropertyField
18.EditorGUILayout.SelectableLabel
一:EditorGUI和EditorGUILayout区别
官方的api给出的是:EditorGUILayout是EditorGUI的自动布局版本
什么意思呢?
如果我们进入到EditorGUI和EditorGUILayout的代码里可以看到EditorGUI类里有的方法 基本在EditorGUILayout类里都有相对应的方法
区别就是:
EditorGUI类的方法基本上都要传入一个参数Rect包含了位置和大小而EditorGUILayout不需要
这样看的话我们着重了解一下EditorGUILayout类
二:EditorGUILayout
常用方法:
1.EditorGUILayout.BeginFadeGroup(float value);
解释: 开始一个可隐藏/显示的组,并且过渡将生成动画。
eg:
private void OnGUI() {
if(EditorGUILayout.BeginFadeGroup(0)) {
GUILayout.TextArea("1\n2\n3\n4\n");
}
EditorGUILayout.EndFadeGroup();
}
效果:

修改值为0.5f
private void OnGUI() {
if(EditorGUILayout.BeginFadeGroup(0.5f)) {
GUILayout.TextArea("1\n2\n3\n4\n");
}
EditorGUILayout.EndFadeGroup();
}
效果:
修改为1
private void OnGUI() {
if(EditorGUILayout.BeginFadeGroup(1)) {
GUILayout.TextArea("1\n2\n3\n4\n");
}
EditorGUILayout.EndFadeGroup();
}
效果:
2.EditorGUILayout.BeginHorizontal
EditorGUILayout.BeginVertical
解释:开始一个水平组/垂直组
eg:
EditorGUILayout.BeginHorizontal();
GUILayout.Button("H_Btn1");
GUILayout.Button("H_Btn2");
EditorGUILayout.EndHorizontal();
EditorGUILayout.BeginVertical();
GUILayout.Button("V_Btn1");
GUILayout.Button("V_Btn1");
EditorGUILayout.EndVertical();
效果:

3.EditorGUILayout.BeginScrollView
解释:开始一个自动布局的滚动视图。
eg:
scrolpos = EditorGUILayout.BeginScrollView(scrolpos, GUILayout.Width(80), GUILayout.Height(80));
GUILayout.Label("item1111111111111");
GUILayout.Label("item2");
GUILayout.Label("item3");
GUILayout.Label("item4");
GUILayout.Label("item5");
EditorGUILayout.EndScrollView();
效果:
4.EditorGUILayout.BeginToggleGroup&&EditorGUILayout.Toggle
BeginToggleGroup 解释:开始一个垂直组,带有可一次性启用或禁用所有控件的开关
Toggle 解释:创建一个开关
eg:
bool showToggle;
private void OnGUI() {
showToggle = EditorGUILayout.BeginToggleGroup("toggleGroup", showToggle);
EditorGUILayout.Toggle("toggle1", showToggle);
EditorGUILayout.Toggle("toggle2", !showToggle);
EditorGUILayout.EndToggleGroup();
}
效果:

5.EditorGUILayout.BoundsField
EditorGUILayout.BoundsIntField
public static Color ColorField 等等等....
unity的api 或者C# api 的一些类型的展示
eg:
Bounds Bounds;
BoundsInt boundsInt;
Color color;
private void OnGUI() {
EditorGUILayout.BeginVertical();
Bounds = EditorGUILayout.BoundsField(Bounds);
boundsInt = EditorGUILayout.BoundsIntField(boundsInt);
color = EditorGUILayout.ColorField(color);
EditorGUILayout.EndVertical();
}
效果:

6.EditorGUILayout.DropdownButton
解释:创建一个能够对鼠标按下做出反应的按钮,用于显示您自己的下拉

本文详细介绍了Unity中EditorGUILayout的使用,包括BeginFadeGroup、BeginHorizontal/Vertical、BeginScrollView、ToggleGroup、BoundsField等方法,以及如何创建可折叠标签、滑块、颜色选择器等编辑器界面元素。通过示例代码展示了这些控件的功能和效果。
12万+

被折叠的 条评论
为什么被折叠?



