EditorGUILayout
是Unity提供的一组用于在Inspector面板中创建GUI元素的方法。以下是一些常用的EditorGUILayout
布局:
-
PropertyField:
csharpCopy code
EditorGUILayout.PropertyField(mySerializedProperty);
这用于显示一个序列化属性的默认字段。它会自动适应属性的类型,比如 bool、int、float、string 等。
-
TextField:
csharpCopy code
myString = EditorGUILayout.TextField("My String", myString);
这用于在Inspector面板中显示一个文本字段,并将值赋给一个变量。
-
IntField和FloatField
csharpCopy code
myInt = EditorGUILayout.IntField("My Integer", myInt); myFloat = EditorGUILayout.FloatField("My Float", myFloat);
用于在Inspector中显示整数或浮点数字段。
-
Toggle:
csharpCopy code
myBool = EditorGUILayout.Toggle("My Boolean", myBool);
用于显示一个复选框。
-
LabelField:
csharpCopy code
EditorGUILayout.LabelField("My Label", myString);
用于显示标签,通常用于标记其他字段的信息。
-
Space:
csharpCopy code
EditorGUILayout.Space();
用于在Inspector中添加空白间隔。
-
Separator:
csharpCopy code
EditorGUILayout.Separator();
用于在Inspector中添加水平分隔线。
-
Foldout:
csharpCopy code
foldout = EditorGUILayout.Foldout(foldout, "Foldout Label"); if (foldout) { // 在折叠面板中显示其他字段 EditorGUILayout.PropertyField(mySerializedProperty); // 其他GUI元素... }
用于创建折叠面板,可以展开或折叠显示内容。
-
EnumPopup:
csharpCopy code
myEnum = (MyEnumType)EditorGUILayout.EnumPopup("My Enum", myEnum);
用于显示枚举类型的下拉列表。
-
Slider:
myFloat = EditorGUILayout.Slider("My Slider", myFloat, 0f, 1f);
用于显示滑块,允许在指定范围内选择一个值。