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

【第一章编辑器开发基础第二节编辑器布局_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.xdnf.cn/news/15297.html

相关文章:

  • Java 大视界 -- 基于 Java 的大数据可视化在城市地下管网管理与风险预警中的应用
  • 显示器核心三要素详解:刷新率、分辨率、色深
  • SpringBoot-26-企业云端开发实践之Vue框架状态管理VueX和数据模拟MockJS
  • 从零构建搜索引擎 build demo search engine from scratch
  • MIPI DSI(三) MIPI DSI 物理层和 D-PHY
  • MMpretrain 中的 LinearClsHead 结构与优化
  • C++标准库(std)详解
  • 1.连接MySQL数据库-demo
  • 蜻蜓I即时通讯水银版系统直播功能模块二次开发文档-详细的直播功能模块文档范例-卓伊凡|麻子
  • 第十八篇 数据清洗:Python智能筛选与统计:从海量Excel数据中秒级挖掘,辅助决策!你的数据分析利器!
  • hash表的模拟--开放定址法
  • C++模版编程:类模版与继承
  • 力扣 hot100 Day43
  • 2025.7.13总结
  • 代码部落 20250713 CSP-S复赛 模拟赛
  • 芯片相关必备
  • [附源码+数据库+毕业论文+答辩PPT+部署教程+配套软件]基于SpringBoot+MyBatis+MySQL+Maven+Vue实现的交流互动管理系统
  • 型模块化协作机器人结构设计cad【1张】三维图+设计说明书
  • MCU中的系统控制器(System Controller)是什么?
  • [Rust 基础课程]Hello World
  • CCPD 车牌数据集提取标注,并转为标准 YOLO 格式
  • LAN-401 linux操作系统的移植
  • 【leetcode】字符串,链表的进位加法与乘法
  • Matlab的命令行窗口内容的记录-利用diary记录日志/保存命令窗口输出
  • Linux 系统——管理 MySQL
  • TDengine 使用最佳实践(2)
  • Java集合框架深度解析:LinkedList vs ArrayList 的对决
  • Autotab:用“屏幕录制”训练AI助手,解锁企业级自动化新范式
  • 复习笔记 35
  • CS课程项目设计1:交互友好的井字棋游戏