在蓝图里处理向量时,Make Vector(合成)和 Break Vector(拆分)就像一把“瑞士军刀”,当你需要读取或修改向量的某个坐标分量时,就离不开它们。
💡 什么是 Vector,以及为什么要用它?
在 UE5 的 3D 世界里,一个 Vector 由 (X, Y, Z) 三个浮点数分量构成,简洁地描述了我们需要的各种信息。它主要有三种用途:
-
位置 (Location):
(X, Y, Z)代表物体在3D世界中的坐标。 -
方向 (Direction):向量也能表示方向,比如角色移动的方向。
-
速度/缩放 (Velocity / Scale):用于表示速度或大小,向量加法就是速度的叠加。
正是因为 Vector 简单又强大,所以 Make Vector 和 Break Vector 才如此重要。Make Vector 用于将三个独立的数值“打包”成一个向量,而 Break Vector 则是从一个完整向量中提取出它的 X、Y、Z 数值。
🛠️ 案例:随机移动的弹跳球 (平台跳跃游戏)
我们将创建一个会在地面上随机弹跳的小球,这个案例能很好地展示这两个节点的核心用法。
1. 创建蓝图类
-
在 内容浏览器 (Content Browser) 中,右键点击空白区域,选择 蓝图类 (Blueprint Class) -> Actor。
-
命名为
BP_BouncingBall,双击打开编辑器。
2. 添加视觉组件
-
添加一个 静态网格体 (Static Mesh) 组件。
-
点击“静态网格体”右侧的“无”下拉菜单,选择 Shape_Sphere。
-
同样地,添加一个 球形碰撞 (Sphere Collision) 组件,并调整它的大小,使其稍微比球体大一圈即可。
3. 创建逻辑变量
-
变量名:
Move Direction,类型:Vector。 -
变量名:
Move Speed,类型:Float,默认值:500.0。 -
变量名:
Bounce Z,类型:Float,默认值:100.0。
记得在细节面板中,把 Move Direction 和 Move Speed 的 Instance Editable 勾选上,方便在场景中调试。
4. 核心逻辑实现 (事件图)
在 BP_BouncingBall 的事件图表中,按以下方式连接节点:
🎉 播放时随机初始化
-
从 Event BeginPlay 节点引出白色执行线。
-
拖出 Random Float in Range (From 0 to 360),得到
RandYawAngle。 -
新建 Make Vector 节点,将 X 设为
cos(RandYawAngle),Y 设为sin(RandYawAngle),Z 设为0。 -
将这个向量 归一化 (Normalize),然后 设置 (Set) 给
Move Direction变量。节点速览:这段逻辑会用你的随机角度算出一个2D方向(例如:右前方),并保存为移动方向。
⚡ 持续更新位置
-
从 Event Tick 节点引出白色执行线。
-
获取
Move Direction和Move Speed变量。 -
将它们 相乘 (Multiply),得到当前帧的位移增量
Delta Movement。 -
然后连接到 Add Actor World Offset 节点(步长类型选
World)。
🪄 边界反弹 (重点案例逻辑)
-
使用 序列 (Sequence) 节点,从 Event Tick 分支出一条新线。
-
获取
Move Direction,连接到 Break Vector 节点,得到Old X,Old Y,Old Z。 -
同时创建 Get Actor Location 节点,连到另一个 Break Vector 节点,获得
Loc X,Loc Y等。 -
判断边界条件 (用“>
” 和 “<” 节点):-
Loc X > 1800(或你的区域边界),则新X=-Old X。 -
Loc Y > 1800,则新Y=-Old Y。
-
-
接缝处弹跳逻辑:
-
如果
Loc Z <= 100.0(刚落到地面),新Z=Bounce Z(注意是正值,向上)。
-
-
新建一个 Make Vector 节点,把可能改变后的
X,Y,Z值重新打包成一个新向量。 -
最后,将这个新向量 设置 (Set) 给
Move Direction变量,就完成了方向的改变。
节点速览:当你需要单独修改一个向量的某一部分时(比如在碰撞后将X分量取反),
Break Vector和Make Vector的配合就是最清晰、最直接的方案。
💎 案例总结
通过这个弹跳球案例,我们可以清晰地看到这两个节点的分工与协作,也正是它们在UE5蓝图开发中的核心价值:
-
Break Vector(拆分):当你需要读取或修改一个向量的某个特定部分(比如只获取Z轴高度,或反转X轴方向)时,使用它来提取分量。 -
Make Vector(合成):当你修改了分量,需要将其重新“打包” 送回给需要它的地方时,使用它来合成新向量。
⚡️ 更高效的方式
除了使用这两个节点,UE5还提供了一个更快捷和直观的方法,特别适合简单的单独修改:
-
右键拆解:在引出一个向量引脚后,直接右键选择 Split Struct Pin(拆分结构体引脚),它会直接在节点上分解出
X,Y,Z。 -
一键重组:完成修改后,在其中一个分量引脚上右键,选择 Recombine Struct Pin(重组结构体引脚),分量会立刻变回原本的向量。
-
适用场景:这个方法非常适合在单个节点上快速连接分量,省去了额外添加
Break/Make节点的步骤,让蓝图看起来更简洁。
感谢您的来访,获取更多精彩文章请收藏本站。







暂无评论内容