返回
UE4 C++ 之打印调试信息 五
前端
2023-12-15 07:32:46
前言
在前一节中,我们创建了一个名为 ConsoleLog 的新 Actor 子类。现在,我们需要在该子类中添加一些代码来打印调试信息。
首先,在 ConsoleLog.h 头文件中添加以下代码:
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "Engine/EngineTypes.h"
#include "Engine/World.h"
UCLASS()
class UCONSOLELOG : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
UCONSOLELOG();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
private:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "ConsoleLog")
FString LogText;
};
接下来,在 ConsoleLog.cpp 源文件中添加以下代码:
#include "ConsoleLog.h"
UCONSOLELOG::UCONSOLELOG()
{
LogText = "Hello World!";
}
void UCONSOLELOG::BeginPlay()
{
Super::BeginPlay();
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, LogText);
}
void UCONSOLELOG::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
现在,当我们在关卡中放置一个 ConsoleLog Actor 时,它将在控制台中打印 "Hello World!"。
使用 FDebugHelper 进行调试
除了直接使用 GEngine->AddOnScreenDebugMessage() 函数打印调试信息外,我们还可以使用 FDebugHelper 类来进行调试。FDebugHelper 类提供了一些更高级的调试功能,例如绘制调试线、绘制调试文本等。
要在 ConsoleLog.cpp 源文件中使用 FDebugHelper 类,我们需要先包含 FDebugHelper.h 头文件:
#include "FDebugHelper.h"
然后,我们可以在 BeginPlay() 函数中使用 FDebugHelper 类来打印调试信息:
void UCONSOLELOG::BeginPlay()
{
Super::BeginPlay();
FDebugHelper::DrawString(GetWorld(), FVector(0.f, 0.f, 100.f), LogText, FColor::Red, 5.f);
}
这段代码将使用 FDebugHelper 类在世界中绘制 "Hello World!" 这段文本。
总结
在本节中,我们学习了如何使用 GEngine->AddOnScreenDebugMessage() 函数和 FDebugHelper 类来打印调试信息。这些调试信息对于我们开发游戏时发现和解决问题非常有用。