Blueprint —— 蓝图变量

本文介绍了虚幻引擎5.2中蓝图变量的使用,包括变量的创建、访问方法、不同类型的变量以及如何设置变量的公开和默认值。变量是保存值或引用的对象属性,可以通过Get和Set操作进行读写,并能通过设置为公开以便外部访问和修改。

目录

一,变量介绍

二,创建变量

三,访问变量

四,变量类型

五,变量细节


虚幻引擎蓝图变量 | 虚幻引擎5.2文档 (unrealengine.com)

一,变量介绍

        变量是保存一个值、或引用一个对象或Actor的属性;这些属性可被蓝图内部访问,也可被设置为外部访问(在关卡中的蓝图实例内,以便用户修改其值);

        在蓝图内Variables下拉列表中,会显示所有已存在的变量,包括组件实例变量,及自定义变量;要在蓝图外修改变量,需将其设置为公开(public,默认为private);

变量以圆形框的形式显示

Variable Nodes

二,创建变量

  • 可直接点击变量列表右侧"+"按钮创建;
  • 可通过提升为变量(Promote to Variable)来创建变量;

HT38.png

HT39.png

三,访问变量

  • Get 获取变量值,Ctrl + 拖拽变量;
  • Set 设置变量值,Alt + 拖拽变量;

HT45.png

 注,可直接

### UE5 蓝图中可观察变量的实现与使用 在 Unreal Engine 5 (UE5) 中,可观察变量是一种常见的需求,尤其是在需要实时监控某些数据变化并作出响应的情况下。以下是关于如何在蓝图中实现和使用可观察变量的具体方法。 --- #### **1. 利用事件分发器(Event Dispatcher)** 事件分发器是实现可观察模式的一种简单有效的方式。它可以用来通知其他蓝图某件事情发生了。例如,当一个变量被修改时,可以触发相应的事件。 ##### 实现步骤: - 在目标蓝图创建一个 `Custom Event` 并将其转换为 `Multicast Delegate`。 - 当变量发生更改时,手动调用该事件。 - 其他蓝图可以通过绑定到这个事件来接收通知。 ```plaintext // 创建 Multicast Delegate 类型的事件分发器 MyVariableChanged(MulticastDelegate) // 绑定事件 Bind To MyVariableChanged(Event) ``` 这种方式非常适合用于简单的跨蓝图通信场景[^1]。 --- #### **2. 使用蓝图接口(Blueprint Interface)** 如果希望多个蓝图都能监听同一个变量的变化,则可以考虑使用蓝图接口。通过定义一个通用的接口,让所有涉及的蓝图都继承该接口,并实现其方法。 ##### 示例流程: - 定义一个蓝图接口文件(BP_Interface),其中包含一个纯虚函数 `OnVariableChanged(VarName)`。 - 所有的监听者都需要实现此接口,并在其内部完成具体逻辑处理。 - 主控蓝图负责维护一份监听者的列表,在每次变量更新时迭代调用它们的 `OnVariableChanged` 函数。 这种方法特别适合复杂的系统架构设计[^2]。 --- #### **3. 结合数组与跨蓝图通信** 假设我们有一个道具拾取系统的案例,这里需要用到数组存储已拾取的道具ID,并且还需要将这些信息同步给UI界面显示出来。 ##### 关键点解析: - **数组操作**:每当玩家拾起新的道具时,就往数组里面添加对应的条目;同时也可以支持移除、查询等功能。 - **跨蓝图通信**:采用直接通信或者事件广播的形式告知UI组件刷新视图内容。 示例代码如下所示: ```blueprint // 角色蓝图部分 Add Element(Array, NewPropId) Broadcast PropPickedUp(NewPropId) // UI蓝图部分 Receive PropPickedUp(Id) UpdateListDisplay() ``` 以上过程充分体现了数组与跨蓝图通信相结合的实际应用价值[^1]。 --- #### **4. 自动化解决方案——借助C++扩展功能** 虽然完全依靠蓝图也能达成目的,但如果追求更高的灵活性和效率的话,不妨尝试编写一些辅助性的C++类库供蓝图为之服务。比如封装好一套专门针对某种类型变量变动监测的服务工具集等等。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值