当前位置: 首页 > article >正文

UE5 蓝图学习计划 - Day 5:复习与整合实践

经过之前的学习,已经掌握了蓝图的基础知识,包括执行流、事件、变量和函数的使用。这些概念是 Unreal Engine 5 蓝图开发的核心基础。在今天的内容中,我们将进行复习与整合,通过一个综合练习项目巩固所学内容,并进一步提升蓝图逻辑的实际应用能力。

学习回顾

核心知识点

  1. 执行流:控制蓝图逻辑的执行顺序。
    • 使用 Event Begin Play 触发初始化逻辑。
    • 使用 Event Tick 实现持续运行的逻辑。
  2. 事件节点:处理游戏中的输入或特定触发条件。
    • 键盘事件(Keyboard Input)。
    • 时间事件(Delay、Timer)。
  3. 变量:存储和传递数据。
    • 创建变量来管理游戏状态(如分数、计时器)。
    • 使用变量的类型(如整数、浮点数、字符串等)根据需求保存信息。
  4. 函数:封装和复用蓝图逻辑。
    • 自定义函数可提高蓝图的可读性与维护性。
    • 输入参数和输出结果的灵活设置。

综合练习:倒计时系统

通过这个练习,我们将实现一个倒计时系统,倒计时结束后触发一段自定义事件,比如在屏幕上显示“游戏结束”。

功能需求

  1. 倒计时从指定的时间(例如 10 秒)开始,每秒减少 1。
  2. 倒计时过程在屏幕上实时显示。
  3. 当倒计时结束时,在屏幕上打印“游戏结束”。
  4. 倒计时逻辑通过变量和自定义函数实现,代码清晰可扩展。

实现步骤

步骤 1:创建蓝图

  1. 打开 Content Browser。
  2. 创建一个新的蓝图类,选择 Actor 类型。
  3. 命名为 BP_CountdownSystem,双击打开蓝图编辑器。
    在这里插入图片描述

步骤 2:创建变量

  1. 在 My Blueprint 面板中点击 + Variable。
  2. 创建以下两个变量:
    • Countdown Time:用于存储倒计时的剩余时间。

      • 类型:Integer。
      • 默认值:10。
        在这里插入图片描述
    • Countdown Active:用于判断倒计时是否正在运行。

      • 类型:Boolean。
      • 默认值:True。
        在这里插入图片描述

步骤 3:创建倒计时函数

  1. 在 My Blueprint 面板中点击 + Function,命名为 HandleCountdown。
    在这里插入图片描述

  2. 在函数内部,添加以下逻辑:

    • Get Countdown Time:获取当前倒计时的剩余时间。
    • 添加一个 Branch 节点:
      • 条件:检查 Countdown Time 是否大于 0。
        *条件为真(True):
        *减少倒计时:从 Countdown Time 减去 1,并重新设置变量。
      • 使用 Print String 节点显示当前时间。
    • 条件为假(False):
      • 设置 Countdown Active 为 False。
      • 使用 Print String 节点显示“游戏结束”。
        在这里插入图片描述

步骤 4:触发函数

  1. 在蓝图的事件图中,添加一个 Event Tick 节点。
  2. 从 Event Tick 的执行流拖出,添加一个 Branch 节点:
    • 条件为 Countdown Active。
  3. 在 Branch 的 True 分支上,添加一个 Delay 节点:
    • 时间设置为 1.0 秒。
  4. 将 Delay 的输出连接到 HandleCountdown 函数。
    在这里插入图片描述

测试效果

  1. 将蓝图 BP_CountdownSystem 拖入场景。
  2. 点击 Play 运行游戏。
  3. 倒计时开始,每秒在屏幕上显示剩余时间。
  4. 当倒计时结束时,屏幕打印“游戏结束”。
    在这里插入图片描述
    在这里插入图片描述

总结与收获

通过今天的综合练习,巩固了以下技能:

  1. 变量管理:倒计时数据通过变量存储并动态更新。
  2. 函数封装:将倒计时逻辑封装在函数中,提升蓝图的可维护性。
  3. 事件驱动:通过 Event Tick 和 Delay 控制倒计时的每秒更新。

下一步学习计划

下一阶段,我们将进入角色与场景交互的学习,学习角色移动、摄像机控制以及场景中的触发事件。期待你的下一步成果!

如果你完成了今天的练习,欢迎分享你的学习截图或问题!让我们一起进步!


http://www.kler.cn/a/529666.html

相关文章:

  • udp和tcp的区别
  • 【RAG】SKLearnVectorStore 避免使用gpt4all会connection err
  • Java线程认识和Object的一些方法ObjectMonitor
  • 因果推断与机器学习—用机器学习解决因果推断问题
  • FreeRTOS学习 --- 中断管理
  • Autogen_core源码:_agent_instantiation.py
  • 3D图形学与可视化大屏:什么是材质属性,有什么作用?
  • 【Block总结】Shuffle Attention,新型的Shuffle注意力|即插即用
  • 在C语言中使用条件变量实现线程同步
  • w187社区养老服务平台的设计与实现
  • M|哪吒之魔童闹海
  • 【网络】传输层协议TCP(重点)
  • Python虚拟环境
  • Redis万字面试题汇总
  • 虚幻基础16:locomotion direction
  • 使用ollama在本地部署一个deepseek大模型
  • 面渣逆袭之Java基础篇3
  • LLMs之DeepSeek:Math-To-Manim的简介(包括DeepSeek R1-Zero的详解)、安装和使用方法、案例应用之详细攻略
  • XML DOM 节点
  • 详解Kafka并行计算架构
  • 深入了解 ls 命令及其选项
  • 【AI】探索自然语言处理(NLP):从基础到前沿技术及代码实践
  • unity免费资源2025-2-2
  • 涡旋光特性及多种模型、涡旋光仿真
  • final-关键字
  • 穷举vs暴搜vs深搜vs回溯vs剪枝系列一>单词搜索