返回

渐入佳境——UE4的C++浮动Actor之旅(教程27)

前端

在浩瀚的游戏开发海洋中,虚幻引擎 (UE4) 宛如一艘乘风破浪的巨轮,载着无数游戏开发者扬帆远航。今天,我们将继续扬帆起航,开启 UE4 C++ 之旅的第二十七章——创造一个漂浮的 Actor!

在上一章教程中,我们了解了如何创建 C++ Actor 子类。本教程将更进一步,我们将为 Actor 添加一个漂浮的效果,让它在虚拟世界中翩翩起舞。准备好了吗?那我们就开始吧!

扬帆起航,创建 Actor 子类

首先,我们需要创建一个新的 C++ Actor 子类。打开 Visual Studio 或你喜欢的 IDE,创建一个新的 C++ 项目。在解决方案资源管理器中,右键单击“源文件”文件夹,选择“添加”>“新建项”。在弹出的对话框中,选择“类”模板,将其命名为 “FloatingActor”。

乘风破浪,添加漂浮效果

接下来,让我们为 FloatingActor 添加漂浮效果。在 FloatingActor.h 头文件中,添加以下代码:

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"

UCLASS()
class FLOATINGACTOR_API AFloatingActor : public AActor
{
	GENERATED_BODY()

public:	
	// 浮动速度
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Floating")
	float FloatSpeed;

	// 浮动高度
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Floating")
	float FloatHeight;

	// 当前浮动位置
	UPROPERTY(Replicated, BlueprintReadOnly, Category = "Floating")
	float CurrentFloatPosition;
};

这段代码定义了 FloatingActor 类,其中包含了两个用于控制浮动行为的属性:FloatSpeed 和 FloatHeight。FloatSpeed 控制浮动的速度,而 FloatHeight 控制浮动的最大高度。此外,我们还添加了一个名为 CurrentFloatPosition 的属性,用于存储当前浮动位置。

在 FloatingActor.cpp 源文件中,添加以下代码:

#include "FloatingActor.h"

// Sets default values
AFloatingActor::AFloatingActor()
{
	// 设置默认浮动速度和高度
	FloatSpeed = 100.0f;
	FloatHeight = 100.0f;

	// 设置当前浮动位置为 0
	CurrentFloatPosition = 0.0f;
}

// Called every frame
void AFloatingActor::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

	// 更新当前浮动位置
	CurrentFloatPosition += FloatSpeed * DeltaTime;

	// 如果当前浮动位置超过浮动高度,则反转浮动方向
	if (CurrentFloatPosition > FloatHeight)
	{
		FloatSpeed = -FloatSpeed;
	}
	else if (CurrentFloatPosition < 0.0f)
	{
		FloatSpeed = -FloatSpeed;
	}

	// 设置 Actor 的位置
	SetActorLocation(FVector(GetActorLocation().X, GetActorLocation().Y, CurrentFloatPosition));
}

这段代码实现了 FloatingActor 的漂浮行为。在 Tick 函数中,我们首先更新当前浮动位置。然后,我们检查当前浮动位置是否超过了浮动高度。如果超过了,我们就反转浮动方向。最后,我们将 Actor 的位置设置为当前浮动位置。

勇往直前,编译并测试

现在,我们已经为 FloatingActor 添加了漂浮效果。接下来,我们需要编译并测试我们的代码。点击“生成”按钮,编译项目。如果一切顺利,你应该能够在“输出”窗口中看到“生成成功”的消息。

编译完成后,打开 UE4 编辑器,创建一个新的关卡。在“内容浏览器”中,找到 FloatingActor 类,将其拖拽到关卡中。你应该能够看到一个蓝色的立方体出现在关卡中。

点击“播放”按钮,运行关卡。你应该能够看到立方体在空中漂浮起来。

总结

恭喜你,你已经成功创建了一个漂浮的 Actor!本教程向你展示了如何为 Actor 添加自定义行为。通过掌握这些知识,你将能够创建出更加复杂和有趣的虚拟世界。

我希望本教程对你有帮助。如果你有任何问题,请随时提出。让我们一起扬帆起航,在 UE4 C++ 的世界中乘风破浪!