UE5 - 创建自定义函数、宏教程(附:函数与宏区别)
作者:hangge | 2025-07-31 08:46
在虚幻引擎 5(Unreal Engine 5)中,蓝图(Blueprint)系统是强大且直观的可视化脚本工具。合理地使用自定义事件(Custom Event)、函数(Function)和宏(Macro)可以极大地提高蓝图逻辑的可读性、可维护性和复用性。本文将通过样例演示这二者的区别和使用。




(5)默认创建的函数是非纯函数,它们二者区别是纯函数没有白色执行引脚,只有在调用输出值时才会运行函数。要将函数转换为纯函数,只需选中函数后在“细节”面板中勾选“纯函数”选项即可。




1,函数与宏区别
(1)输入/输出:
- 函数:支持多种类型的输入参数,且同时支持返回值(Return Value)。
- 宏:支持输入参数;但无返回值,输出只能通过执行输出(Exec Pin)或自定义输出引脚。
(2)执行引脚:
- 函数:单一入口/出口
- 宏:支持多个输入/输出执行引脚
(3)Delay 延迟节点:
- 函数:不能使用延迟节点
- 宏:可以使用延迟节点
(4)局部变量:
- 函数:支持局部变量(Local Variable),在函数内部可创建任意中间变量。
- 宏:不支持真正的局部变量,只能通过输入输出模拟临时变量。
(5)执行上下文:
- 函数:会新建一个执行上下文(Isolation),局部变量仅在函数内部有效。
- 宏:不会新建执行上下文,会将宏内部节点“内联”到调用处。
(6)性能开销:
- 函数相:对有小量函数调用开销(但常量优化后性能损失可忽略)。
- 宏:由于内联,调用开销几乎为零;但节点数量可能变多,影响可读性。
(7)调试与跟踪:
- 函数:调试时会显示函数的调用栈,便于追踪;且函数内部断点更易定位。
- 宏:调试时需要手动在展开后的调用链上设置断点,略显繁琐。
(8)是否可由另一个蓝图调用:
- 函数:可由另一个蓝图调用。
- 宏:不可以由另一个蓝图调用。
2,函数的创建与使用
(1)在“我的蓝图”面板的“函数”卷展栏中单击右侧的加号按钮,创建一个新的函数并命名为“ComputeDamage”。

(2)双击打开函数有,在右侧“细节”面板中添加输入和输出参数:

(3)该函数内的逻辑如下:

(4)最后使用这个函数测试一下:
- 运行结果如下:

- 可以看到函数节点的执行引脚消失了。

3,宏的创建和使用
(1)在“我的蓝图”面板的“宏”卷展栏中单击右侧的加号按钮,创建一个新的宏并命名为“ScoreCheck”。

(2)接着我们在“细节”面板中添加白色输入和输出引脚:
- 输入:有一个名为分数(Score) 的整数数据输入参数,一个名为测试(Test)的输入执行引脚
- 输出:有两个名为 Win 和 Lose 的输出执行引脚。

(3)该宏内部的逻辑如下:

(4)最后使用这个宏测试一下:
- 运行结果如下:

全部评论(0)