当前位置: 首页 > 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.lryc.cn/news/587639.html

相关文章:

  • RabbitMQ的介绍与安装
  • RabbitMQ的几个模式
  • Redis单线程详解
  • Advanced Database Systems: History of Databases
  • 代数基本定理最简短的证明
  • C++ 中常见的字符串定义方式及其用法
  • 正运动与您相聚2025青岛国际工业自动化技术及装备展览会!
  • 前端字体使用操作
  • YOLOv11调参指南
  • 管程! 解决互斥,同步问题的现代化手段(操作系统os)
  • Linux操作系统从入门到实战(八)详细讲解编译器gcc/g++编译步骤与动静态库链接
  • Rocket常见问题及解决方案
  • H2 与高斯数据库兼容性解决方案:虚拟表与类型处理
  • 第12章:【系统架构设计师】系统架构设计-数据流风格
  • Oracle中的INSTR函数
  • 衡石科技技术手册--仪表盘过滤控件详解
  • 空间智能-李飞飞团队工作总结(至2025.07)
  • Spring Cloud分布式配置中心:架构设计与技术实践
  • 2025前端面试题
  • (懒人救星版)CNN_Kriging_NSGA2_Topsis(多模型融合典范)深度学习+SCI热点模型+多目标+熵权法 全网首例,完全原创,早用早发SCI
  • 【前端:Typst】--let关键字的用法
  • ethers.js-5–和solidity的关系
  • Popover API 实战指南:前端弹层体验的原生重构
  • 七、深度学习——RNN
  • C语言-流程控制
  • 详解从零开始实现循环神经网络(RNN)
  • 使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)
  • kafka的部署
  • Android系统的问题分析笔记 - Android上的调试方式 bugreport
  • 论文阅读:WildGS-SLAM:Monocular Gaussian Splatting SLAM in Dynamic Environments