1. 通过C++代码,在屏幕上绘制点、线、圆等图形来进行调试或显示效果。
void DrawDebugLine(const FVector& StartPost, const FVector& EndPos, const FLinearColor& LineColor)
{
ULineBatchComponent* const LineBatcher = GetWorld()->PersistentLineBatcher;//GetDebugLineBatcher(GetWorld(), bPersistentLines, LifeTime, (DepthPriority == SDPG_Foreground));
if (LineBatcher != NULL)
{
//画点
LineBatcher->DrawPoint(StartPost, FLinearColor::Blue, 5, 10, 0.f);
//画线
LineBatcher->DrawLine(StartPost, EndPos, LineColor, 10, 0.f);
//还有很多其他的绘制函数 DrawLines DrawBox DrawDirectionalArrow DrawCircle DrawSolidBox DrawMesh
}
}
2. 通过C++代码,在屏幕上显示一行文字。
void DrawDebugText(USceneComponent* DummyRoot, const FString& text, const FVector& pos, const FLinearColor& TextColor, float WorldSize)
{
UTextRenderComponent* ScoreText = nullptr;
// Create static mesh component
//ScoreText = CreateDefaultSubobject<UTextRenderComponent>(TEXT("ScoreText0"));
ScoreText = NewObject<UTextRenderComponent>(this, UTextRenderComponent::StaticClass());
ScoreText->RegisterComponent();
ScoreText->AttachTo(DummyRoot);
ScoreText->SetRelativeRotation(FRotator(90.f, 0.f, 0.f));
ScoreText->SetRelativeLocation(pos);
ScoreText->SetWorldSize(WorldSize);
ScoreText->SetTextRenderColor(FColor::Yellow);
// Update text
ScoreText->SetText(text);
}
展示下最终效果: