蓝图函数库和宏库
蓝图函数库
大白话说一下,就是因为两个蓝图里,在其中一个蓝图中创建的函数,不能在另一个蓝图里应用,但是一般蓝图又很多,所以有了这个函数库,将相同的函数在里创建,对所有蓝图公开使用。
蓝图函数库不能拥有任何实例变量。不能保存状态或数据,因为它目的是提供通用的、静态的功能。
假设创建了一个名为 MyFunctionLibrary
的蓝图函数库,并在其中定义了一个名为 AddIntegers
的函数,这个函数接受两个整数作为输入,并返回它们的和。
THIS IS创建蓝图函数库步骤:
-
创建蓝图函数库:
- 在UE编辑器的“内容浏览器”中,右键单击并选择“蓝图类”。
- 在弹出的对话框中,选择“蓝图函数库”作为基类。
- 给蓝图函数库一个名字,比如
MyFunctionLibrary
。
-
添加函数:
- 打开
MyFunctionLibrary
,然后在蓝图编辑器中添加一个新的函数,命名为AddIntegers
。 - 定义函数的输入参数(例如
A
和B
,类型为Integer
),并设置返回值类型(例如Integer
)。 - 实现函数逻辑,比如返回
A + B
。
- 打开
调用函数:
- 从另一个蓝图中调用:
- 在想调用这个函数的蓝图(例如,角色蓝图或自定义蓝图)中,打开蓝图编辑器。
- 拖动一个“调用函数”节点,选择你自己创建的
AddIntegers
函数。 - 参数并连接节点以执行函数。
蓝图宏库:跟函数库差不多其实
-
没有实例变量:
- 类似于蓝图函数库,宏库本身也不能拥有实例变量或持久状态。所有的数据和状态都必须通过参数传递。
-
创建和使用:
- 在内容浏览器中右键点击,选择“蓝图” > “蓝图宏库”来创建一个新的宏库。在宏库中定义宏后,可以在其他蓝图中调用这些宏。
示例用法:
假设你要创建一个宏来处理角色的状态更新。
创建蓝图宏库:
-
创建宏库:
- 在内容浏览器中右键单击,选择“蓝图” > “蓝图宏库”。
- 给宏库名称,例如
MyMacroLibrary
。
-
定义宏:
- 打开
MyMacroLibrary
,然后在蓝图编辑器中添加新的宏,命名为UpdateCharacterState
。 - 在宏编辑器中,添加你需要的节点来实现状态更新逻辑。然后添加逻辑来处理角色的健康、状态和其他属性。
- 打开
-
添加输入和输出:
- 在宏的图表中添加输入参数(如
Health
和Stamina
),以及输出(如UpdatedHealth
)。
- 在宏的图表中添加输入参数(如
调用宏:
- 从另一个蓝图中调用:
- 打开想使用宏的蓝图。
- 拖动“宏调用”节点,选择
UpdateCharacterState
宏。 - 连接输入参数并处理输出结果。
UE蓝图广播事件
在蓝图的事件分发器那里
发送方
这个的用途:
- 跨蓝图通信:比如一个角色的状态变化需要通知UI更新。
- 响应游戏事件: 比如玩家达到特定等级然后触发游戏关卡变化、玩家完成任务触发地图更新。
实现步骤:
-
创建事件调度器:
- 在蓝图编辑器中,添加一个事件调度器(右键 > “添加事件调度器”)。
-
触发事件:
- 在需要广播事件的地方(如角色受伤逻辑),调用事件调度器。
-
绑定事件:
- 在其他蓝图中,找到事件调度器并绑定到一个函数,处理接收到的事件。