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

第 31 课 · UI 系统概述

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

🎯 本课学习目标

按钮、血条、菜单、对话框——UI 决定游戏的「门面」。本课从整体认识 Godot UI 系统。

📖 详细教学步骤

UI 用什么节点?概念

Godot 的 UI 全部基于 Control 类节点(控件):

  • Label(文字)、Button(按钮)、Panel(面板)、ProgressBar(进度条)
  • Slider(滑块)、LineEdit(输入框)、CheckBox(复选框)等
  • 所有 UI 节点都是 Control 的子类

UI 放哪?CanvasLayer 与 UI 场景概念

  • UI 建议放在 CanvasLayer 下:无论相机怎么动,UI 固定显示在屏幕上
  • UI 独立成场景(如 hud.tscn、menu.tscn)便于管理
  • UI 坐标系统与 2D 世界分离,左上角为原点

锚点(Anchor):UI 怎么跟着窗口走重点

UI 用锚点定义「这个控件相对父控件的哪个位置对齐」:

锚点预设效果
左上角控件固定左上
顶部居中固定顶部中间
全矩形铺满整个父控件(全屏面板)
右下角固定右下

💡 选中 UI 节点后,顶部工具栏的「布局」菜单可以一键设置锚点。

Offset 与控件尺寸概念

  • 锚点决定位置基准,Offset 决定相对锚点的偏移
  • 控件有 Position、Size 属性(在锚点基础上计算)
  • 窗口大小变化时,控件按锚点自动适配

💡 新手的通用做法:全屏面板用「全矩形」锚点,普通控件用「顶部居中」等预设。

添加一个简单 UI 试试实操

  1. 新建场景,根节点 CanvasLayer,命名 UI,保存 ui.tscn
  2. 添加子节点 Panel,用布局预设「全矩形」铺满屏幕
  3. 在 Panel 下加 Button,文字改成「开始游戏」
  4. 运行(把 ui.tscn 设为主场景),能看到一个全屏面板 + 按钮
⚠️
UI 跟着玩家乱跑?

UI 节点必须在 CanvasLayer 下,不能直接放在 2D 世界节点下。

⚠️
改了窗口大小 UI 错位?

用锚点预设而不是手摆位置,窗口自适应就交给锚点。

🧪 动手试一试

🏋️ 课后练习

创建 ui.tscn,用 CanvasLayer + 全屏 Panel + 顶部居中的标题 Label + 右下角的一个关闭按钮。

Label 用「顶部居中」布局,Button 用「右下角」布局。

💡

UI 节点选中的时候,按「布局」工具栏的预设一键排版,别手动拖。

💡

UI 缩放跟随窗口:项目设置里可设 Stretch 模式,第 96 课详讲。

🎓 本课小结

UI 系统基于 Control 控件,放在 CanvasLayer 下固定显示;锚点决定对齐方式、Offset 决定偏移;用布局预设一键排版。