渐入佳境——UE4的C++浮动Actor之旅(教程27)
2024-01-23 10:50:48
在浩瀚的游戏开发海洋中,虚幻引擎 (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++ 的世界中乘风破浪!