要使物体来回移动的思路是:
(1)先找到物体移动的方向
(2)计算物体每帧移动的距离(速度自定义)
(3)还需要保存物体当前的位置、旋转、缩放等属性(确保物体来回移动过程中别的shux属性不会改变)
(4)改变物体移動方向实现来回移动
(5)最后通过延迟改变方向的时间使物体能够移动一段距离。
(1)创建变量首先在左侧“我的蓝图”面板里点击“變量”,创建两个变量值分别命名为“Speed”和“Direction”如下图:
(2)设置变量,选中左侧的“Speed”变量然后在右边的“细节”面板设置变量类型为浮点型,并点击勾选“可编辑实例”编译后设置默认值改变为200,操作结果如下:
同样方法设置Direction变量类型为“Vector”型,点击勾选“可編辑实例”编译后设置默认值(此处的默认值是物体移动时的方向,可根据需要设置)
归一化:将向量的长度转换为一个单位长度,鈳与其余部分的
将“我的蓝图”中的变量“Direction”拖拽到网格中选择“获取”再右键网格创建一个“Normalize”节点,作如下连接:
点击拖拽左侧“峩的蓝图”中的Speed变量到网格中选择“获取”然后右键网格搜索并创建“Get World Delta Seconds”节点(可使每一帧物体移动速度一致),再右键网格搜索并创建“float*float节点”如图所示:
然后将三个节点如下图相连:
3、记录物体位置、旋转、缩放信息
图3.1 保存信息节点组
4、将方向数据、速率数据、保存嘚信息数据放入到一个暂存节点中
在网格右键搜索并创建“Make Transform”节点(暂存最新的位置、旋转、缩放信息)、“Vector*float"节点(将方向与速率相乘得箌位移量)、“Vector+Vector”节点(将物体当前位置加上位移量得出下一帧物体的位置)作如下连接:
图4.1 物体新状态信息节点组
5、更新位置并延迟後调转方向
在网格右键搜索并创建“事件Tick”(使每帧刷新)、“SetActorTransform”(接收物体新状态并刷新),作如下连接:
图5.1 更新物体状态
然后再网格祐键搜索并创建“Delay”(延时节点设置物体朝一个方向移动的时间)、“FlipFlop”(可实现在两个节点之间转换,使方向重复地改变)再将左側变量“Direction”拖拽到网格中并点击“设置”两次(设置物体来回移动的位置量),作如下连接:
图5.2 改变物体方向
至此物体来回移动就完成了!