2024行业资讯 > > 正文
2024 07/ 03 17:03:23
来源:用户半双

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见问题解答

字体:

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见疑惑解答

一、引言

在Unreal Engine 4(简称UE4)中物体的移动是一个常见的需求。本文将详细介绍怎么样实现物体在UE4中的自动上下循环移动以及在采用进展中可能遇到的部分常见疑惑及其解答。

二、物体移动的基础知识

1. SetActorLocation 与 AddActorWorldOffset

在UE4中咱们可以利用SetActorLocation()和AddActorWorldOffset()两种方法来移动物体。

- SetActorLocation():直接设置物体的世界坐标,适用于一次性定位。

- AddActorWorldOffset():在物体当前坐标的基础上增加一个偏移量,适用于连续移动。

2. MovementMode 设置

当利用AddActorWorldOffset()或AddActorLocalOffset()移动Character时,需要将MovementMode设置为fly。否则,当DeltaLocation较小时,角色会始往下掉,即使禁用物理模拟。

三、实现物体自动上下循环移动的步骤

1. 设置输入映射

在项目设置中找到“输入”选项然后设置以下轴映射:

- MoveF(前后移动):键盘W值设置为1,键盘S值设置为-1。

- MoveR(右移动):键盘D值设置为1键盘A值设置为-1。

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见问题解答

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见问题解答

2. 创建图

创建一个图类,继承自Actor,命名为BP_MovableActor。

3. 添加成员变量

在BP_MovableActor中添加以下成员变量:

- MoveSpeed:移动速度,用于控制物体的移动速度。

- MoveHeight:循环移动的高度用于控制物体上下移动的幅度。

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见问题解答

- MoveDuration:循环移动的时间,用于控制物体完成一次循环所需的时间。

4. 编写逻辑代码

在BP_MovableActor的BeginPlay中,添加以下代码:

```cpp

// 初始化成员变量

MoveSpeed = 100.0f;

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见问题解答

MoveHeight = 200.0f;

MoveDuration = 5.0f;

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见问题解答

// 启动自动移动

StartAutoMove();

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见问题解答

```

在BP_MovableActor中添加以下函数:

```cpp

// 启动自动移动

void StartAutoMove()

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见问题解答

{

// 获取初始位置

FVector StartLocation = GetActorLocation();

// 计算目标位置

FVector TargetLocation = StartLocation FVector(0, 0, MoveHeight);

// 计算移动时间

float MoveTime = MoveHeight / MoveSpeed;

Unreal Engine 4中实现物体自动上下循环移动:完整教程与常见问题解答

// 设置定时器

GetWorldTimerManager().SetTimer(AutoMoveTimerHandle, this,

【纠错】 【责任编辑:用户半双】

Copyright © 2000 - 2023 All Rights Reserved.

辽B2-20140004-27.