HOME / 第 4 部分 · UI 界面 · 动画 · 特效 / 第 32 课
MODULE 4 · UI 界面 · 动画 · 特效

第 32 课 · Control 节点与布局容器

⏱ 预计时长 30 分钟📊 难度 入门📚 模块 第 4 部分 · UI 界面 · 动画 · 特效

🎯 本课学习目标

本课深入 Control 的通用属性,并学会用容器自动排版多个 UI 控件。

📖 详细教学步骤

Control 通用属性概念

属性作用
Position位置(相对父控件)
Size尺寸(宽高)
Visible是否显示
Modulate调色/透明度
Tooltip Text鼠标悬停提示
Mouse Filter鼠标事件处理方式

容器:自动排列的爸爸概念

容器(Container)会自动排列子控件,你不需要手摆位置:

  • VBoxContainer:子控件竖排
  • HBoxContainer:子控件横排
  • GridContainer:子控件网格排
  • MarginContainer:子控件四周留边
  • CenterContainer:子控件居中

实操:竖排三个按钮实操

  1. 新建 UI 场景(CanvasLayer 根)
  2. CenterContainer 作为全屏铺满(布局:全矩形)
  3. 在 CenterContainer 下加 VBoxContainer
  4. 在 VBoxContainer 下加 3 个 Button:开始 / 设置 / 退出
  5. 三个按钮自动竖直排列并居中

💡 容器会自动接管子控件的布局,你只管添加子控件。

容器与间隔实操

  • 容器内加 HSeparator / VSeparator 分割线
  • Control 占位节点撑出空隙
  • 调整容器 Theme Overrides → Constants → Separation 控制间距

嵌套容器进阶

容器可以嵌套,做出复杂布局:

CenterContainer(居中)
└── VBoxContainer(竖排)
    ├── TitleLabel
    ├── HBoxContainer(横排)
    │   ├── Button 开始
    │   └── Button 退出
    └── Label 版本号
⚠️
容器里的控件位置拖不动?

正常!容器接管了布局,手动拖动会被覆盖。想手动布局就别用容器,或调整容器属性。

⚠️
容器里的控件挤在一起?

设置容器的 Separation(间距)常量,或加占位 Control。

🧪 动手试一试

🏋️ 课后练习

用 CenterContainer + VBoxContainer 做一个居中的主菜单:标题 + 开始/设置/退出 三按钮,按钮间有间距。

VBoxContainer 的 Theme Overrides → Constants → Separation 设 16。

💡

容器 + 锚点 = 自适应界面的黄金组合,所有分辨率都整齐。

💡

调整容器属性用 Theme Overrides 里的 Constants。

🎓 本课小结

Control 是所有 UI 的基类;容器自动布局子控件(VBox 竖排、HBox 横排、Center 居中、Margin 留边),嵌套容器做出复杂界面。