Blueprint —— 蓝图变量

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一,变量介绍

二,创建变量

三,访问变量

四,变量类型

五,变量细节


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

一,变量介绍

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

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

变量以圆形框的形式显示

Variable Nodes

二,创建变量

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

HT38.png

HT39.png

三,访问变量

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

HT45.png

 注,可直接将变量从列表中拖入图表中,将会显示get/set的小菜单;

四,变量类型

        变量可以不同类型创建,以保存特定值或引用; 

Variable TypeExampleRepresents
Boolean

RedWire.png

true/false(bool)
Byte

get-byte-variable-icon.png

0~255整数值(unsigned char)
Integer

CyanWire.png

整数值(int)
Integer64

get-integer64-variable-icon.png

长整数值(long)
Float

GreenWire.png

浮点值(float)
Name

get-name-variable-icon.png

在游戏中识别事物的一段文本
String

MagentaWire.png

字符串(string)
Text

PinkWire.png

向用户显示的文本
Vector

GoldWire.png

矢量
Rotator

PurpleWire.png

定义3D空间的旋转
Transform

OrangeWire.png

变换(包含tran、rot、scale)
Object

BlueWire.png

蓝图对象(如lights、actors、camers等)

五,变量细节

        在变量细节面板,可设置变量的使用和访问;设置变量的默认值,需先编译蓝图;

Public Variables

  •  公开变量的方法:打开变量后的眼睛、或勾选Instance Editable;

Expose on Spawn

HT27.png

Private Variables

HT44.png

### 模式蓝图节点的选择方式与应用场景 #### 选择方式 在 Unreal Engine 的蓝图编辑器中,模式蓝图节点通常用于特定的功能模块或工具集。这些节点可以通过多种方式进行选择和配置: - **通过上下文菜单添加**:在蓝图的事件图中,右键点击空白区域会弹出一个上下文菜单,在该菜单中可以搜索并选择所需的模式蓝图节点[^1]。 - **拖拽连接线创建**:当两个节点之间存在兼容的数据类型时,可以在引脚间拖动连接线,并自动提示可用的转换或操作节点[^3]。 - **使用快捷搜索功能**:输入关键字快速定位目标节点,例如 `Timeline` 或其他自定义名称。 #### 应用场景 模式蓝图节点的应用范围广泛,涵盖了游戏逻辑设计中的多个方面: - **动画控制**:利用 `Timeline` 节点实现平滑的时间轴驱动效果,比如角色动作过渡、UI 动画播放等。 - **条件判断与分支处理**:构建复杂的决策树结构,支持多路径执行流程管理。 - **数据传递与计算**:完成变量赋值、算术运算以及更高级别的算法封装[^2]。 - **国际化支持优化**:针对不同地区用户的界面显示需求调整文字描述等内容。 以下是关于如何在实际项目里应用的一个简单例子——基于时间变化调节物体位置: ```blueprint // 创建一个名为 MoveObjectAlongPath 的 Timeline 并绑定其 Float Track 到 ObjectLocation 变量更新函数 void UpdateObjectPosition(float InterpValue){ FVector NewPos = FMath::Lerp(StartPoint, EndPoint, InterpValue); MyActor->SetActorLocation(NewPos); } ``` #### 注意事项 为了确保最佳实践,请始终遵循官方文档推荐的最佳做法来组织您的蓝图网络布局;另外也要注意性能考量因素,避免过度复杂化不必要的部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值