UDebugDrawComponent

Helper class to derive from to use debug draw delegate functionalities (i.e. DrawDebugLabels) The class will take care of registering a delegate to the [UDebugDrawService](API\Runtime\Engine\Debug\UDebugDrawService) and draw all FText3d provided by the scene proxy.

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Classes/Debug/DebugDrawComponent.h

Include

#include "Debug/DebugDrawComponent.h"

Syntax

class UDebugDrawComponent : public UPrimitiveComponent

Remarks

Helper class to derive from to use debug draw delegate functionalities (i.e. DrawDebugLabels) The class will take care of registering a delegate to the UDebugDrawService and draw all FText3d provided by the scene proxy. This functionality only requires the derived classes to override `CreateDebugSceneProxy_.

It is also possible to add text from other sources of data from the scene proxy but that requires a few extra steps:

  • create a class that inherits from `FDebugDrawDelegateHelper_

  • override `DrawDebugLabels_

  • add a method to be able to populate the source data from the scene proxy ex: class FMyDelegateHelper : public FDebugDrawDelegateHelper { public: void SetupFromProxy(const FMySceneProxy* InSceneProxy) { <collect data>=""> }; protected: virtual void DrawDebugLabels(UCanvas* Canvas, APlayerController*) override { <draw data>=""> }; private: TArray<FVector> SomeData; };

  • Within the component inheriting from `UDebugDrawComponent_

  • add a property of that new helper type in the component inheriting from `UDebugDrawComponent_

  • override `GetDebugDrawDelegateHelper_ to return that new member as the new delegate helper to use

  • and then use it in `CreateDebugSceneProxy_ before returning the created proxy. ex: class MyDebugDrawComponent : public UDebugDrawComponent { protected: virtual FDebugRenderSceneProxy* CreateDebugSceneProxy() override { FMySceneProxy* Proxy = new FMySceneProxy(this); MyDelegateHelper.SetupFromProxy(Proxy); return Proxy; } virtual FDebugDrawDelegateHelper& GetDebugDrawDelegateHelper() override { return MyDelegateHelper; } private: FMyDelegateHelper MyDelegateHelper; }

Variables

Functions

Name Description

Protected function Virtual

FDebugRender...

 

CreateDebugSceneProxy()

Method that derived class should override to create the scene proxy and customize a custom delegate helper (if any)

Protected function Virtual

FDebugDrawDe...

 

GetDebugDrawDelegateHelper()

Method that should be overriden when subclass uses a custom delegate helper.

Overridden from UPrimitiveComponent

Name Description

Protected function Virtual

FPrimitiveSc...

 

CreateSceneProxy()

Method overriden and marked as final since derived class should override `CreateDebugSceneProxy_

Overridden from UActorComponent

Name Description

Protected function Virtual

void

 

CreateRenderState_Concurrent

(
    FRegisterComponentContext* Con...
)

Used to create any rendering thread information for this component

Protected function Virtual

void

 

DestroyRenderState_Concurrent()

Used to shut down any rendering thread structure for this component