UE5 蓝图学习计划 - Day 4:变量与函数基础
在 Unreal Engine 5 的蓝图系统中,变量 和 函数 是管理数据与封装逻辑的核心工具。变量用于存储和传递信息,而函数则帮助我们组织和复用代码逻辑。本篇内容将深入学习变量的定义与使用,掌握如何创建自定义函数,并通过实践任务应用这些知识。
什么是变量?
变量 是蓝图中的基本数据存储单元,用于保存游戏状态、对象属性、配置数据等。
变量类型
- 基础类型:
- 布尔(Boolean):真或假值,用于条件判断。
- 整数(Integer):存储整数。
- 浮点数(Float):存储带小数的数字。
- 字符串(String):存储文本信息。
- 对象类型:
Actor、组件等复杂对象。 - 容器类型:
- 数组(Array)、字典(Map)。
如何创建变量?
- 打开蓝图编辑器,进入 My Blueprint 面板。
- 点击“+ 变量”按钮,创建一个新变量。
- 在 Details 面板中设置变量的类型和默认值。
什么是函数?
函数 是蓝图中的逻辑模块,用于封装和复用代码片段。通过函数,可以提高蓝图的可读性和维护性。
函数的特点
- 输入参数:可以传递数据到函数中处理。
- 输出结果:函数完成计算后返回值。
- 逻辑封装:减少重复代码。
如何创建函数?
-
打开蓝图编辑器,进入 My Blueprint 面板。
-
点击“+ 函数”按钮,创建一个新函数。
-
在节点图中编写函数逻辑,并添加输入或输出参数。
实践任务 1:创建一个简单计数器
我们将用变量实现一个简单计数器,通过按键控制计数的增加和减少。
步骤 1:创建变量
-
创建一个新的蓝图(Actor 类型)。
-
在 My Blueprint 面板中,创建一个名为 Counter 的变量。
- 类型设置为 Integer。
- 默认值设置为 0。
步骤 2:设置输入事件
- 在蓝图节点图中,添加以下两个输入事件:
- Keyboard P:增加计数。
- Keyboard M:减少计数。
步骤 3:实现逻辑
- 将 Keyboard P 的执行流连接到一个 Set Counter 节点。
- 在 Set Counter 节点的输入端,添加以下逻辑:
- 使用 Get Counter 获取当前值。
- 添加一个 + 节点,将当前值加 1。
- 将结果连接到 Set Counter 的输入。
对 Keyboard M 执行相似的步骤,但将 + 换成 -。 - 添加Enable Input节点。这是因为普通的Actor默认不会接受输入。
步骤 4:打印计数值
- 在每次设置变量后,连接一个 Print String 节点。
- 将变量 Counter 的值连接到 Print String 节点的输入端。
测试结果
将Actor拖动到地图中,运行游戏时:
- 按下 P 键,计数器的值会增加。
- 按下 M 键,计数器的值会减少。
- 当前计数值会显示在屏幕上。
实践任务 2:创建自定义函数实现加法运算
接下来,我们将创建一个函数,用于计算两个输入值的和,并返回结果。
步骤 1:创建函数
- 在蓝图中,打开 My Blueprint 面板。
- 点击“+ 函数”,创建一个名为 CalculateSum 的函数。
步骤 2:设置输入和输出
- 在函数的 Details 面板中,添加两个输入参数:
- Input A(类型:Float)。
- Input B(类型:Float)。
- 添加一个输出参数:
- Result(类型:Float)。
- Result(类型:Float)。
步骤 3:编写逻辑
- 在节点图中,添加一个 + 节点,将 Input A 和 Input B 相加。
- 将结果连接到函数的 Return Node,并设置为 Result 输出值。
步骤 4:调用函数
- 在蓝图的事件图中,添加一个 Event Begin Play 节点。
- 添加 CalculateSum 节点,输入任意两个数字。
- 将函数的输出值连接到 Print String 节点,并打印结果。
测试结果
运行游戏时,屏幕上会显示两个数字的加和结果。
进阶:变量和函数的结合
尝试用变量存储函数的输入或输出值。例如:
- 使用变量存储函数的结果值,并在其他逻辑中重复使用。
- 将函数封装成动态行为,比如角色的血量计算或分数增加。
注意事项
- 变量命名规则
使用清晰的变量命名规则,例如 Health, PlayerScore,避免模糊命名。 - 函数复用
将常用逻辑封装到函数中,减少重复节点的使用。
收获与总结
通过今天的学习,你已经掌握了:
- 变量的创建与使用,包括如何在蓝图中管理数据。
- 自定义函数的实现与调用,用于封装和复用逻辑。
- 通过实践任务,完成了一个简单计数器和加法函数。
下一步学习计划
在接下来的学习中,我们将深入探索角色与场景交互的蓝图逻辑,例如角色移动、摄像机控制和触发事件,进一步提升游戏开发技能!
如果你在学习中有任何问题,欢迎留言讨论。期待看到你的学习成果!