当前位置: 首页 > news >正文

【第一章编辑器开发基础第二节编辑器布局_3间距控制(4/4)】

间距控制
​​用途​​:精确控制UI元素间隔
​​核心类​​:GUILayout
​​调用位置​​:布局容器内

​​两种空间类型​​:

// 1. 固定像素间距
GUILayout.Space(20f); // 20像素间隔// 2. 弹性填充空间
GUILayout.FlexibleSpace();
​​经典布局应用​​:// 左右按钮居中布局
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace(); // 左侧弹性空间
GUILayout.Button("确定");
GUILayout.Space(10);       // 固定间距
GUILayout.Button("取消");
GUILayout.FlexibleSpace(); // 右侧弹性空间
GUILayout.EndHorizontal();// 底部按钮固定
GUILayout.BeginVertical();
// ... 主内容 ...
GUILayout.FlexibleSpace(); // 压到最下方
GUILayout.Button("提交");
GUILayout.EndVertical();

​​经验原则​​:

FlexibleSpace会占用所有可用空间
多个Space会线性累计
适用于按钮组对齐等精细布局

示例代码和效果图

using UnityEngine;
using UnityEditor;/// <summary>
/// 创建自定义编辑器,作用于Example组件
/// </summary>
[CustomEditor(typeof(Example))]
public class ExampleEditor : Editor
{// ================= 核心方法 - 绘制编辑器界面 =================public override void OnInspectorGUI(){// 1. 先绘制默认Inspector内容base.OnInspectorGUI();// 2. 依次绘制各种自定义控件Space();       // 间距控制}// ================= 10. 间距控制 =================private void Space(){// 水平布局中的固定间距GUILayout.BeginHorizontal();GUILayout.Button("btn1", GUILayout.Width(80f));GUILayout.Space(100f); // 100像素的水平间距GUILayout.Button("btn2", GUILayout.Width(80f));GUILayout.EndHorizontal();// 垂直布局中的弹性间距GUILayout.BeginVertical();GUILayout.Button("btn3", GUILayout.Width(80f)); // 顶部按钮/*弹性空间说明:1. btn3会固定在顶部2. FlexibleSpace会占据所有剩余垂直空间3. btn4会固定在底部*/GUILayout.FlexibleSpace();GUILayout.Button("btn4", GUILayout.Width(80f)); // 底部按钮GUILayout.EndVertical();}
}

在这里插入图片描述

http://www.dtcms.com/a/279676.html

相关文章:

  • OpenCV C++ 中的掩码(Mask)操作
  • 微服务初步入门
  • 设计模式之适配器模式:让不兼容的接口协同工作的艺术
  • Unreal5从入门到精通之如何实现UDP Socket通讯
  • 【C++进阶】---- 多态
  • 解锁文档处理新体验:Python库Agentic Document Extraction
  • OneCode3.0 通信架构简介——MCPServer微内核设计哲学与实现
  • Web学习笔记4
  • 算法训练营day16 513.找树左下角的值、112. 路径总和、106.从中序与后序遍历序列构造二叉树
  • 探索 Sort.h:多功能排序算法模板库
  • [element-ui]el-table在可视区域底部固定一个横向滚动条
  • 智源全面开源RoboBrain 2.0与RoboOS 2.0:刷新10项评测基准,多机协作加速群体智能
  • MCP 第三波升级!Function Call 多步调用 + 流式输出详解
  • QWidget 和 QML 的本质和使用上的区别
  • 慢查询日志监控:定位性能瓶颈的第一步
  • 【抖音滑动验证码风控分析】
  • 小架构step系列14:白盒集成测试原理
  • C# TCP粘包与拆包深度了解
  • spark广播表大小超过Spark默认的8GB限制
  • FatJar打包和FatJar启动配置文件修改。
  • pattern of distributed system 读书笔记-Overview of the Patterns
  • Rsyslog介绍及运用
  • JAVA并发--深入了解CAS机制
  • VirtualBox 安装 CentOS7 后无法获取 IP 的排查与修复
  • 网络请求和下载
  • 在Adobe Substance 3D Painter中,已经有基础图层,如何新建一个图层A,clone基础图层的纹理和内容到A图层
  • Zabbix在MySQL性能监控方面的运用
  • 多线程(6)
  • Rust配置国内源
  • MySql:sql语句中数据库别名命名和查询问题