UEDL3-1——EditorGUI的文本、层级和标签、颜色

本章代码关键字

1
2
3
4
5
//以下控件都可以使用EditorGUI绘制,但是需要自己指定位置与大小!
EditorGUILayout.LabelField() //在窗口上添加文本控件,可以显示标题和内容
EditorGUILayout.LayerField() //在窗口上添加选择哪个层级(Layer)的选项控件,需要配套一个int变量
EditorGUILayout.TagField() //在窗口上添加选择哪个标签(Tag)的选项控件,需要配套一个字符串变量
EditorGUILayout.ColorField() //在窗口上添加选择哪个颜色(Tag)的控件,需要配套一个Color变量

文本控件

LabelField​可以在窗口上显示文本

  • 参数一:文本标题(可选,可改为GUIContent​)
  • 参数二:文本内容(必填,可改为GUIContent​)
  • 参数三:GUIStyle​(可选)
  • 参数四:GUILayoutOption​(使用EditorGUI​绘制时可选)
1
2
3
4
5
private void OnGUI()
{
EditorGUILayout.LabelField("文本标题", "测试内容");
EditorGUILayout.LabelField("文本内容");
}

显示效果如下:

image

层级、标签选择

LayerField​和TagField​可以在窗口上显示选择哪个标签(LayerField​)或者层级(TagField​)的选项,
和GUI的单选框类似,它们需要外部声明一个配套变量(层级是int类型,标签是string类型)来表示选中了哪个选项
然后将变量传入到方法内,再由该变量接收本帧用户选中的选项

  • 参数一:文本标题(可选,如果只想显示选项可不填,可改为GUIContent​)
  • 参数二:显示当前选中的层级的索引变量/选中的标签变量(传入在外部声明的相应变量)
  • 参数三:GUIStyle​(可选)
  • 参数四:GUILayoutOption​(使用EditorGUI​绘制时可选)
  • 返回值:本帧选中的层级的索引变量/选中的标签变量(由外部声明的相应变量接收)
1
2
3
4
5
6
7
8
9
10
int layer;
int layer2;
string tag;

private void OnGUI()
{
layer = EditorGUILayout.LayerField(layer);
layer2 = EditorGUILayout.LayerField("层级选择", layer2);
tag = EditorGUILayout.TagField("标签选择", tag);
}

显示效果如下:

imageimage

颜色获取

ColorField​可以在窗口上显示选择哪个颜色,
同样,需要配套一个Color​变量来表示选中了哪个颜色,需要将该变量传入到方法内,再由该变量接收本帧用户选中的颜色

  • 参数一:文本标题(可选,但如果要使用参数三四五必须要使用GUIContent​​)
  • 参数二:显示当前选中的颜色(传入在外部声明的相应变量)
  • 参数三:是否显示拾色器
  • 参数四:是否显示透明度通道
  • 参数五:是否支持HDR
  • 参数六:GUILayoutOption​(使用EditorGUI​绘制时可选)
  • 返回值:本帧选中的层级的索引变量/选中的标签变量(由外部声明的相应变量接收)
1
2
3
4
5
6
Color color;

private void OnGUI()
{
color = EditorGUILayout.ColorField(new GUIContent("自定义颜色获取"), color, true, true, true);
}

显示效果如下:​image