0.总
- 布局从left-top位置开始计算
##. 1.GUI固定布局
- GUI的基础
- 固定布局
- GUI的属性设置
属性 | 描述 |
---|---|
changed | 可输入的数据是否有变化。有变换返回true |
enabled | 是否可以进行交互。false的时候,组件半透明显示 |
分组 | 方法 | 描述 |
---|---|---|
分组 | .BeginGroup(Rect)/GUI.EndGroup() | 在组内的组件rect的left-top是group rect的left-top位置 |
2.GUILayout自动布局
- 基于GUI固定布局的扩展,只是增加了相对布局的方法
- GUI的属性设置,还是依赖于GUI的,在GUI类中
分组 | 方法 | 描述 |
---|---|---|
分区 | .BeginArea(Rect)/.EndArea() | 默认在此Area中的组件都会拉伸至占整个区域 |
水平布局 | .BeginHoriztontal()/.EndHorizontal() | |
垂直布局 | .BeginVertical()/.EndVertical() |
项 | 方法 | 描述 |
---|---|---|
Layout.Width() | ||
Layout.Height() | ||
Expand: | ||
Layout.ExpandWidth() | ||
Layout.ExpandHeight() | ||
Max: | ||
Layout.MaxWidth() | ||
Layout.MaxHeight() | ||
Min: | ||
Layout.MinWidth() | ||
Layout.MinHeight() |
项 | 方法 | 描述 |
---|---|---|
GUILayout.Space() | ||
GUILayout.FlexibleSpace() | ||
GUILayout.Window() | 创建弹出窗口 |
3.EditorGUI
- 除去对GUI/GUILayout的依赖之外,增加了在Editor中特有的处理
属性 | 描述 |
---|---|
actionKey | 控制键是否按下。在Mac中是Command键,在Windows下是Ctrl键 |
indentLevel | 缩进level。建议不要直接赋值,只进行++和– |
showMixedValue | 多物体被选中的时候,如果某个字段有不同的值,是否显示成“–”的形式 |
项 | 方法 | 描述 |
---|---|---|
group: | ||
EditorGUI.BeginChangeCheck()/.EndChangeCheck() | 组内,如果GUI.changed,EndChangeCheck返回true | |
.BeginDisabledGroup()/.EndDisabledGroup() | 组内是否disable交互 | |
.BeginProerty()/.EndProperty() | 创建一个Property的wapper,作用于SerializedeProperty | |
字段: | ||
BoundsField() | ||
ColorField() | ||
CurveField() | ||
Delayed[Double/Float/Int]Field() | ||
[Double/Float/Int/Object/Password/Property/Rect/Text/Tag/Vector2/3/4]Field() | ||
drawer: | ||
DrawPreviewTexture() | ||
DrawTextureAlpha() | 在矩形内绘制texture的alpha通道 | |
DrawShadowLabel() | 绘制带阴影的Label | |
枚举: | ||
EnumMaskField | 弹出枚举字段,基于枚举Mask的枚举字段。(可以多选的enum,或) | |
EnumMaskPopup | 弹出枚举字段。(可以多选的enum,或)。将有[Flags]属性的枚举字段作为输入 | |
EnumPopup | 弹出枚举字段,单选。 |
4.EditorGUILayout
项 | 方法 | 描述 |
---|---|---|
group: | ||
EditorGUILayout.BeginFadeGroup/.EndFadeGroup() | ||
EditorGUILayout.BeginHorizontal/.EndHorizontal() | ||
EditorGUILayout.BeginVertical/.EndVertical() | ||
其他: | ||
EditorGUILayout.Space() |