GUILayOut线性布局

本文介绍了Unity中使用GUILayout进行GUI布局的方法,包括水平和垂直布局的实现方式。通过具体的代码示例展示了如何创建不同类型的GUI元素,并对其进行水平或垂直排列。
void OnGUI()
{
    //开始水平线性布局
    GUILayout.BeginHorizontal();  
    GUILayout.Box("开始水平布局");
    GUILayout.Button("按钮");
    GUILayout.Label("文本框");
    GUILayout.Box(Texture);
    //结束水平线性布局
    GUILayout.EndHorizontal();


    //开始垂直线性布局
    GUILayout.BeginVertical();
    GUILayout.Box("开始水平布局");
    GUILayout.Button("按钮");
    GUILayout.Label("文本框");
    GUILayout.Box(Texture);
    //结束垂直线性布局
    GUILayout.EndVertical();
}
### 关于 `GUILayout` 的使用教程 #### 创建简单的布局结构 为了创建一个具有特定排列方式的用户界面组件集合,可以利用 `GUILayout.BeginHorizontal()` 和 `GUILayout.BeginVertical()` 方法来定义水平或垂直方向上的容器。这些方法允许开发者轻松地控制子元素之间的相对位置。 ```csharp void OnGUI() { GUILayout.BeginHorizontal(); GUILayout.Button("Button 1"); GUILayout.Button("Button 2"); GUILayout.Button("Button 3"); GUILayout.EndHorizontal(); GUILayout.BeginVertical(); GUILayout.Button("Top Button"); GUILayout.Button("Middle Button"); GUILayout.Button("Bottom Button"); GUILayout.EndVertical(); } ``` 上述代码片段展示了如何通过调用 `BeginHorizontal/EndHorizontal` 来构建一行内并列显示三个按钮的效果;以及通过 `BeginVertical/EndVertical` 实现上下堆叠展示多个按钮的功能[^3]。 #### 控制间距与填充 当希望调整各个控件间的距离时,可借助 `GUILayout.Space(float pixels)` 或者更灵活的方式——`GUILayout.FlexibleSpace()` 函数。前者接受固定像素值作为参数指定间隔宽度,而后者则会尽可能多地占用剩余可用空间,使得其他兄弟节点紧贴边缘分布。 ```csharp void OnGUI() { GUILayout.BeginHorizontal(); GUILayout.Button("Left", GUILayout.Width(80)); GUILayout.FlexibleSpace(); // 自动拉伸占据中间空白区域 GUILayout.Button("Right", GUILayout.Width(80)); GUILayout.EndHorizontal(); } ``` 此示例说明了怎样让两个按钮分别位于窗口两侧,并由柔性空间隔开它们之间的一切多余部分[^2]。 #### 设置自适应大小 有时需要使某些 UI 组件能够根据其内容动态改变尺寸,这时就可以运用到像 `GUILayout.ExpandWidth(bool expand)` 这样的属性设定语句。如果传递给它的布尔值为 true,则该对象将会沿所在轴向扩张至最大可能范围;反之保持原有形态不变。 ```csharp void OnGUI() { GUILayout.Label("This label will stretch across the entire width.", GUILayout.ExpandWidth(true)); GUILayout.TextField("", GUILayout.MaxWidth(200), GUILayout.MinHeight(30), GUILayout.ExpandHeight(false)); } ``` 这里给出了标签和文本框两种不同类型的实例,其中第一个被配置成完全填满整个行宽,而后者的高度受到最小限度约束的同时不会随输入增长而无限延伸[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值