UE5 蓝图学习计划 - Day 10:UI 系统(HUD 与 Widget)

embedded/2025/2/3 9:16:51/

在游戏开发中,UI(用户界面) 是玩家获取游戏信息、与游戏进行交互的重要部分。Unreal Engine 5 提供了 HUD(Head-Up Display) 和 Widget Blueprint(小部件蓝图) 来帮助开发者创建 血量条、得分系统、菜单界面 等 UI 组件。在本篇文章中,我们将学习如何使用 Widget Blueprint 创建 UI,并通过蓝图更新 UI 数据,最终实现一个 血量与得分系统。

理论学习

  1. HUD(Head-Up Display)
    • HUD 是传统的游戏 UI 系统,主要用于显示 玩家状态(血量、得分、时间)。
    • 主要通过 DrawText() 和 DrawTexture() 在屏幕上绘制信息。
    • 在 UE5 中,HUD 主要用于 旧版 UI 开发,新项目更推荐使用 Widget Blueprint。
  2. Widget Blueprint(小部件蓝图)
    • Widget Blueprint 是 UE5 现代化 UI 开发的核心工具。
    • 允许使用 拖拽 UI 组件 设计界面,并通过 蓝图控制 UI 数据更新。
    • 主要组件:
      • Text(文本):用于显示分数、血量等信息。
      • Progress Bar(进度条):用于显示血量或能量。
      • Image(图片):用于显示游戏 UI 图标。
      • Button(按钮):用于玩家交互,如菜单按钮。

实践任务:创建血量与得分 UI

目标

  1. 创建 HUD UI
    • 添加 血量条(Health Bar),动态更新角色血量。
    • 添加 得分文本(Score Text),显示当前得分。
  2. 在角色蓝图中更新 UI
    • 角色受到伤害时,血量 UI 变化。
    • 角色拾取物品时,得分 UI 更新。

步骤 1:创建 UI 蓝图

  1. 创建 Widget Blueprint
    1. 在 Content Browser 右键 User Interface > Widget Blueprint。

    2. 选择 User Widget,命名为 WBP_GameUI。
      在这里插入图片描述

    3. 双击打开 UI 编辑界面。

  2. 设计 UI 界面
    1. 添加Canvas Panel

      • 在 Hierarchy 面板,拖入Canvas Panel。
        在这里插入图片描述
    2. 添加血量条

      • 在 Hierarchy 面板,拖入 Progress Bar,放到Canvas Panel下面,命名为 HealthBar。
      • 设置 Fill Color 为红色,调整 大小 适配 UI 需求。
        在这里插入图片描述
    3. 添加得分文本

      • 拖入 Text 组件,命名为 ScoreText。
      • 设置默认文本为 “Score: 0”。
        在这里插入图片描述
    4. 调整布局

      • 使用 Canvas Panel 进行 UI 布局。
      • 将血量条放置在 屏幕左上角,得分文本放在 右上角。
        在这里插入图片描述
        在这里插入图片描述

步骤 2:创建 UI 更新逻辑

  1. 在 WBP_GameUI 中创建变量
    1. 在 Graph 视图,添加以下 绑定变量:

      • PlayerHealth(Float):角色血量,默认值 1.0(代表 100%)。
      • PlayerScore(Integer):角色得分,默认值 0。
        在这里插入图片描述
    2. 切换到Designer视图 绑定 血量条进度

      • 选中 HealthBar,在 Details 面板 绑定 Percent:
      • 这样当 PlayerHealth 变化时,血量条 UI 也会自动更新。
        在这里插入图片描述
    3. 绑定 得分文本

      • 选中 ScoreText,绑定 Text:
      • 这样 PlayerScore 变量更新时,文本 UI 也会更新。
        在这里插入图片描述

步骤 3:将 UI 添加到屏幕

  1. 在角色蓝图中创建 UI

    1. 打开 BP_PlayerCharacter,在 Event Begin Play 事件中:
      • 创建 UI
      • 存储 UI 变量
      • 这样 UI 会在游戏启动时自动显示。
        在这里插入图片描述
  2. 更新 UI

    1. 在 角色受伤事件(使用键盘X事件来模拟) 中:

      • 减少 PlayerHealth。
      • 调用 UI 变量的 Set PlayerHealth 更新血量条。
        在这里插入图片描述
    2. 在 角色拾取物品事件(使用键盘P事件来模拟) 中:

      • 增加 PlayerScore。
      • 调用 UI 变量的 Set PlayerScore 更新得分文本。
        在这里插入图片描述

步骤 4:测试 UI

  1. 运行游戏,观察 血量条与得分 UI 是否正确显示。
  2. 按键盘X让角色受到伤害,观察 血量 UI 是否减少。
  3. 按键盘P让角色拾取物品,观察 得分 UI 是否增加。
    在这里插入图片描述

学习收获

通过今天的学习,你掌握了:

  1. 如何使用 Widget Blueprint 创建 UI(血量条、得分文本)。
  2. 如何通过蓝图变量动态更新 UI 数据。
  3. 如何将 UI 绑定到角色蓝图,实现游戏交互。

下一步学习计划

接下来,我们将学习 材质与特效系统,探索如何通过 动态材质(Dynamic Material) 和 粒子特效(Particle Effects) 提升游戏的视觉表现!🚀


http://www.ppmy.cn/embedded/159146.html

相关文章

走向基于大语言模型的新一代推荐系统:综述与展望

HightLight 论文题目:Towards Next-Generation LLM-based Recommender Systems: A Survey and Beyond作者机构:吉林大学、香港理工大学、悉尼科技大学、Meta AI论文地址: https://arxiv.org/abs/2410.1974 基于大语言模型的下一代推荐系统&…

JVM篇:对象的深度剖析

前8个字节是markword,它的值是:00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000000。其中01是锁标志位,前面的0表示是否是偏向锁,我们这个对象是没有加锁的,所以这个地方是0。后4个字节是类型指…

扣子平台音频功能:让声音也能“智能”起来。扣子免费系列教程(14)

在数字化时代,音频内容的重要性不言而喻。无论是在线课程、有声读物,还是各种多媒体应用,音频都是传递信息、增强体验的关键元素。扣子平台的音频功能,为开发者和内容创作者提供了一个强大而灵活的工具,让音频的使用和…

硕成C语言2

这节课的内容是: 求正负数的补码/一个字节无符号数的范围/一个字节有符号的且为正数的数的范围 补码: 计算机中的数据均以二进制补码的形式存储正数的补码和原码相同:2的补码/原码都是:0000 0010负数的原码先求其反码&#xff0c…

计数排序算法

基本思想 先确定待排序数组的最大值(Max)和最小值(Min),随后创建Max - Min 1个长度的数组称为计数数组,计数数组的索引对应着待排序数组中元素的值,数组的值表示该元素的出现次数。通过从前往…

22.Word:小张-经费联审核结算单❗【16】

目录 NO1.2 NO3.4​ NO5.6.7 NO8邮件合并 MS搜狗输入法 NO1.2 用ms打开文件,而不是wps❗不然后面都没分布局→页面设置→页面大小→页面方向→上下左右:页边距→页码范围:多页:拼页光标处于→布局→分隔符:分节符…

08.七种排序算法实现(C语言)

目录 一.排序的基本概念 1.1 排序的概念 1.2 常见的排序算法 二.常见排序算法的实现 2.1 插入排序(直接) 1.基本思想 2.直接插入排序的特性 3.代码实现 2.2 希尔排序 1.基本思想 2.希尔插入排序的特性 3.代码实现 2.3 选择排序 1.基本思想 2…

DB-GPT试用

继续上一篇 DB-GPT的安装 https://blog.csdn.net/berryreload/article/details/142845190 访问http://xxx:5670 访问这里 创建数据库连接 http://10.168.1.208:5670/construct/database 访问这里,点击刷新 http://10.168.1.208:5670/construct/app 刷新后才能出…