【第一章编辑器开发基础第二节编辑器布局_1水平与垂直布局(1/4)】

基本布局系统(水平与垂直布局)

​​用途​​:控制UI元素排列

​​核心类​​:GUILayout

​​调用位置​​:OnInspectorGUI()

​​布局容器​​:

csharp 复制代码
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限制)

垂直和水平布局可自由组合

示例代码和效果图

csharp 复制代码
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(); // 结束主水平布局
    }


}
相关推荐
on_pluto_9 小时前
【debug】vscode 和 codex 不兼容问题
ide·人工智能·vscode·编辑器
Web - Anonymous13 小时前
Vue3 + Element Plus 集成 JSON Editor 实现实时校验 JSON 编辑器(高亮/暗亮主题/分栏回显/组件复用) - 附完整示例
vue.js·编辑器·json
迷路爸爸1801 天前
cursor资源管理器修改为与vscode一样的纵向布局
ide·vscode·编辑器
TO_ZRG2 天前
Unity 编辑器之 EditorTool、EditorToolBar、Overlay属性
编辑器
星羽XingYu2 天前
esp32 vscode clangd 无法索引库函数解决方案
ide·vscode·编辑器
北漂燕郊杨哥2 天前
DotMD:一款基于 Go + Wails 的轻量开源 Markdown 桌面编辑器
golang·开源·编辑器·markdown·md
末代iOS程序员华仔2 天前
Cursor 编辑器 + Figma‑MCP 服务器(真正让 Codex 直接读取 Figma 链接,高级方案)
服务器·编辑器·figma
平头某2 天前
DSH:Agent 的 VSCode 时刻?
ide·vscode·编辑器
Dontla2 天前
VSCode打开关闭控制台面板快捷键ctrl+`(terminal快捷键、vscode控制台快捷键)
ide·vscode·编辑器
笨笨饿2 天前
#109_BK7258 蓝牙 A2DP 音频数据通路深度解析
python·stm32·单片机·mcu·物联网·编辑器·音视频