【第一章编辑器开发基础第二节编辑器布局_1水平与垂直布局(1/4)】
基本布局系统(水平与垂直布局)
用途:控制UI元素排列
核心类:GUILayout
调用位置:OnInspectorGUI()
布局容器:
GUILayout.BeginHorizontal(); // 开始水平布局
GUILayout.BeginVertical(); // 开始垂直布局
// ... UI元素 ...
GUILayout.EndHorizontal(); // 必须成对结束
GUILayout.EndVertical();
经典嵌套布局:GUILayout.BeginHorizontal();GUILayout.BeginVertical();
GUILayout.Button("左列按钮1");
GUILayout.Button("左列按钮2");
GUILayout.EndVertical();GUILayout.BeginVertical();
GUILayout.Button("右列按钮1");
GUILayout.Button("右列按钮2");
GUILayout.EndVertical();GUILayout.EndHorizontal();
黄金法则:
Begin/End必须严格配对
嵌套不得超过8层(Unity限制)
垂直和水平布局可自由组合
示例代码和效果图
using UnityEngine;
using UnityEditor;/// <summary>
/// 创建自定义编辑器,作用于Example组件
/// </summary>
[CustomEditor(typeof(Example))]
public class ExampleEditor : Editor
{// ================= 核心方法 - 绘制编辑器界面 =================public override void OnInspectorGUI(){// 1. 先绘制默认Inspector内容base.OnInspectorGUI();// 2. 依次绘制各种自定义控件Layout(); // 基本布局示例}// ================= 8. 基本布局示例 =================private void Layout(){// 主水平布局GUILayout.BeginHorizontal();// 左侧垂直布局GUILayout.BeginVertical();GUILayout.Button("btn1");GUILayout.Button("btn2");GUILayout.EndVertical();// 右侧垂直布局GUILayout.BeginVertical();GUILayout.Button("btn3");GUILayout.Button("btn4");GUILayout.EndVertical();GUILayout.EndHorizontal(); // 结束主水平布局}}