UE5 蓝图计划 - Day 2-3:执行流与事件

news/2025/2/4 8:14:10/

在 Unreal Engine 5 的蓝图系统中,执行流(Execution Flow) 和 事件(Events) 是构建游戏逻辑的核心基础。通过执行流,蓝图可以按照特定的顺序运行节点逻辑;而事件则是蓝图的触发器,能够根据游戏中的特定条件调用执行流。在本篇中,我们将详细学习执行流与常用事件的概念,并通过实践任务巩固理解。

什么是执行流?

执行流是蓝图中用来控制节点执行顺序的连接线。每个蓝图逻辑通常从一个触发事件节点开始,沿着执行流依次运行。

执行流关键特点:

  1. 有方向性:执行流的箭头决定了蓝图逻辑的执行顺序。
  2. 串联节点:一个节点完成后,执行流会触发下一个节点。
  3. 分支逻辑:执行流可以通过条件节点(例如 Branch)实现多条路径的逻辑分支。

常用事件介绍

蓝图中的事件节点是逻辑的入口点,常见的事件包括:

  1. Event Begin Play
    游戏开始时触发,仅执行一次。常用于初始化逻辑
  2. Event Tick
    每帧都会触发,频率由帧率决定。常用于需要持续更新的逻辑。
  3. 输入事件(Input Events)
    响应玩家输入,例如按键、鼠标点击等。

实践任务1:打印游戏运行时间

我们将用执行流和事件节点实现一个功能,每秒打印当前游戏的运行时间。

步骤1:创建蓝图

  1. 在 Content Browser 中创建一个新的蓝图类(Blueprint Class),选择 Actor。(如果不知道怎么创建的可以看day1的课程)
    在这里插入图片描述

  2. 命名为 BP_GameTime,双击打开蓝图编辑器。
    在这里插入图片描述

步骤2:添加节点

  1. 双击创建的BP_GameTime,进入EventGraph,可以看到 Event Begin Play 节点。

    • 这是蓝图的入口点,游戏开始时触发。
      在这里插入图片描述
  2. 添加以下节点:

    • Delay 节点:设置延迟时间。
    • Print String 节点:打印文本到屏幕。
    • Get Game Time in Seconds 节点:获取当前游戏运行的秒数。
      在这里插入图片描述

步骤3:连接执行流

  1. 将 Event Begin Play 连接到 Delay 节点。
  2. 设置 Delay 节点的时间为 1.0,实现每秒触发一次。
  3. 将 Delay 的输出连接到 Print String 节点。
  4. 将 Get Game Time in Seconds 的输出值连接到 Print String 节点的 In String 输入端。
    在这里插入图片描述

步骤4:循环执行

从 PrintString 节点的输出连接回到Delay 节点的输入,实现循环。
在这里插入图片描述

步骤5:测试

  1. 将蓝图拖入场景中。
    在这里插入图片描述

  2. 点击 Play,观察屏幕是否每秒打印一次游戏运行时间。
    在这里插入图片描述

实践任务 2:实现简单条件分支

接下来,我们用执行流的分支逻辑(Branch Node)实现一个简单功能:当游戏时间超过 5 秒时,屏幕打印 “游戏运行超过 5 秒”。

步骤 1:修改蓝图

在任务 1 的基础上,添加以下节点:

  1. Branch 节点:用于执行条件判断。
  2. Greater than (>) 节点:用于比较游戏时间是否超过 5。
    在这里插入图片描述

步骤 2:连接逻辑

  1. 在 Get Game Time in Seconds 节点之后,添加 > 节点。
  2. 将游戏时间值连接到 > 节点的左侧上边的输入,左侧下方的0.0改成5.0。
  3. 将 > 节点的输出值(布尔类型)连接到 Branch 节点的条件输入。
  4. 将 Branch 的输出分别连接到两个 Print String 节点:
    • 如果条件为真,打印 “游戏运行超过 5 秒”。
    • 如果条件为假,打印当前时间。
      在这里插入图片描述

步骤 3:测试

  1. 点击 Play 运行游戏。
  2. 观察屏幕是否在 5 秒后切换打印内容。

在这里插入图片描述

注意事项

  • 延迟循环优化
    • Delay 节点适合简单逻辑,但对于高频执行建议使用 Event Tick 和计时器(Timer)实现,避免性能问题。
  • 调试技巧
    • 使用蓝图中的 Print String 打印信息,可以帮助快速定位问题。
    • 利用执行流上的 Debug 功能,实时查看节点的运行情况。

收获与总结

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

  1. 执行流的基本概念及其连接方式。
  2. 常见事件节点(Event Begin Play、Event Tick)的使用。
  3. 条件分支逻辑的实现方式。

学习成果

你实现了两个实用的小功能:

  • 持续打印游戏运行时间。
  • 判断游戏时间并执行条件分支逻辑。

下一步学习计划

接下来的学习将深入 变量与函数,进一步提升蓝图逻辑的灵活性与可重用性。我们还将尝试创建自定义函数,封装复杂逻辑。

如果你对蓝图开发有任何问题,欢迎在评论区提问!记得分享你的学习成果哦!


http://www.ppmy.cn/news/1569181.html

相关文章

Rust `struct`和 `enum`番外《哪吒、白蛇传?》

第一章:混天绫引发的血案——没有 struct 的江湖有多乱 天庭码农哪吒最近很头疼。 他写了个程序管理法宝库,结果代码乱成一锅粥: // 哪吒的早期代码:法宝属性分散传递 fn print_treasure(name: String, power_level: u32, is_…

安卓(android)读取手机通讯录【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的(如果代码有错漏,可在代码地址查看) 1.熟悉内容提供者(Content Provider)的概念和作用。 2.掌握内容提供者的创建和使用方法。 4.掌握内容URI的结构和用途。 二、实验条件 1.熟悉内容提供者的工作原理。 2.掌握内容提供者访问其…

Android学习19 -- 手搓App

1 前言 之前工作中,很多时候要搞一个简单的app去验证底层功能,Android studio又过于重型,之前折腾gradle堪称噩梦。所以搞app都只有找应用的同事帮忙。一直想知道一些简单的app怎么能手搓一下,简单快速的搞出来。趁着现在有时间&…

Kamailio、MySQL、Redis、Gin后端、Vue.js前端等基于容器化部署

基于容器化的部署方案,通常会将每个核心服务(如Kamailio、MySQL、Redis、Gin后端、Vue.js前端等)独立运行在不同的容器中,通过Docker或Kubernetes统一管理。以下是具体实现方式和关键原因: 1. 容器化部署的核心思路 每…

【Linux系统】—— make/makefile

【Linux系统】—— make/makefile 1 什么是 make/makefile2 第一版本makefile3 依赖关系和依赖方法4 清理4.1 清理的基本语法4.2 make 的默认执行4.3 为什么要加 『.PHONY:clean』4.3.1 『.PHONY:clean』的功能4.3.2 如何理解总是不被执行4.3.2 如何区分文件的新旧 5 第二版本m…

Java | CompletableFuture详解

关注:CodingTechWork CompletableFuture 概述 介绍 CompletableFuture是 Java 8 引入的一个非常强大的类,属于 java.util.concurrent 包。它是用于异步编程的一个工具,可以帮助我们更方便地处理并发任务。与传统的线程池或 Future 对比&…

C#魔法秘籍:委托与事件,开启多态回调与消息派对之旅

一、引言:踏入 C# 魔法世界 嘿,各位编程小伙伴们!欢迎来到 C# 的奇幻世界,今天我们要一起探索两个超级有趣又强大的特性 —— 委托(Delegate)和事件(Event)。这两个家伙可是 C# 编程…

跨平台文件互传工具

一款高效便捷的文件互传工具,支持在线快速传输各种文件格式,无需注册,直接分享文件。适用于个人和团队间的文件共享,跨平台支持,轻松解决文件传输问题。免费的文件传输服务,让你的工作更高效。 gotool