個別にFlush可能なDraw Debug系の機能について

DrawDebugPointやDrawDebugLineなどは一行で簡単な描画が可能ですが、クリアにする際にFlushPersistentDebugLines

を使って描画のクリアを行うと全ての描画がクリアされます。

DrawDebug系を使い個別に描画のクリアなどは可能でしょうか?

またDrawDebugでなくとも、簡単に描画・クリアすることのできる他の機能はありますか?

お世話になっております。

>DrawDebug系を使い個別に描画のクリアなどは可能でしょうか?

DrawDebugHelpers に宣言されている DrawDebugLine 等により描画されたものについては個別のクリアができません。

ただし DrawDebugLine 等の関数で内部的に使用されている ULineBatchComponent::DrawLine 等では最後のパラメータ BatchID にて識別番号を設定でき、

ULineBatchComponent::ClearBatch 関数によって指定した番号の描画をクリアできます。

参考までに関数の宣言部分を抜粋しておきます。

`// LineBatchComponent.h

ENGINE_API virtual void DrawLine(
const FVector& Start,
const FVector& End,
const FLinearColor& Color,
uint8 DepthPriority,
float Thickness = 0.0f,
float LifeTime = 0.0f,
uint32 BatchID = INVALID_ID
);

/** Remove batched lines, points and meshes with given ID */
ENGINE_API void ClearBatch(uint32 InBatchID);`World 自体が LineBatchComponent を保持しており、例えば以下のような形で使用できます。

// 線を描画 GetWorld()->PersistentLineBatcher->DrawLine(Start, End, FLinearColor::Red, 0, 2.0f, -1.0f, BatchID); // その線を削除 GetWorld()->PersistentLineBatcher->ClearBatch(BatchID);

よろしくお願いいたします。

ありがとうございます!

意図通りに動作することが確認できました

ご確認ありがとうございます。

本件はクローズいたします。

また何かありましたらお問い合わせ下さい。