UE4学习笔记2----蓝图实现物体来回移动

要使物体来回移动的思路是:

(1)先找到物体移动的方向

(2)计算物体每帧移动的距离(速度自定义)

(3)还需要保存物体当前的位置、旋转、缩放等属性(确保物体来回移动过程中别的shux属性不会改变)

(4)改变物体移动方向实现来回移动

(5)最后通过延迟改变方向的时间使物体能够移动一段距离。

具体实现如下:

1、设置物体移动方向

(1)创建变量,首先在左侧“我的蓝图”面板里点击“变量”,创建两个变量值,分别命名为“Speed”和“Direction”如下图:

图1.1 创建变量图

(2)设置变量,选中左侧的“Speed”变量,然后在右边的“细节”面板设置变量类型为浮点型,并点击勾选“可编辑实例”,编译后设置默认值改变为200,操作结果如下:

图1.2 Speed变量设置界面

同样方法设置Direction变量,类型为“Vector”型,点击勾选“可编辑实例”,编译后设置默认值(此处的默认值是物体移动时的方向,可根据需要设置)。

图1.3 Direction变量设置界面

(3)归一化方向向量

归一化:将向量的长度转换为一个单位长度,可与其余部分的

将“我的蓝图”中的变量“Direction”拖拽到网格中选择“获取”,再右键网格创建一个“Normalize”节点,作如下连接:

图1.4 归一化向量

2、设置物体移动速度

点击拖拽左侧“我的蓝图”中的Speed变量到网格中选择“获取”,然后右键网格搜索并创建“Get World Delta Seconds”节点(可使每一帧物体移动速度一致),再右键网格搜索并创建“float*float节点”如图所示:

图2.1 *号节点

然后将三个节点如下图相连:

图2.2 速度节点组

3、记录物体位置、旋转、缩放信息

在网格右键搜索并创建“GetWorldTransform(Static Mesh Component)”节点,再到网格右键搜索并创建“Break Transform”作如下连接:

图3.1 保存信息节点组

4、将方向数据、速率数据、保存的信息数据放入到一个暂存节点中

在网格右键搜索并创建“Make Transform”节点(暂存最新的位置、旋转、缩放信息)、“Vector*float"节点(将方向与速率相乘得到位移量)、“Vector+Vector”节点(将物体当前位置加上位移量得出下一帧物体的位置),作如下连接:

图4.1 物体新状态信息节点组

5、更新位置并延迟后调转方向

在网格右键搜索并创建“事件Tick”(使每帧刷新)、“SetActorTransform”(接收物体新状态并刷新),作如下连接:

图5.1 更新物体状态

然后再网格右键搜索并创建“Delay”(延时节点,设置物体朝一个方向移动的时间)、“FlipFlop”(可实现在两个节点之间转换,使方向重复地改变),再将左侧变量“Direction”拖拽到网格中并点击“设置”两次(设置物体来回移动的位置量),作如下连接:

图5.2 改变物体方向

至此物体来回移动就完成了!

猜你喜欢

转载自blog.csdn.net/sky130054/article/details/81282824