Files
UnrealEngine/Engine/Plugins/Runtime/SmartObjects/Source/SmartObjectsModule/Private/SmartObjectDebugRenderingComponent.cpp
2025-05-18 13:04:45 +08:00

45 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "SmartObjectDebugRenderingComponent.h"
#include "SmartObjectDebugSceneProxy.h"
#include "Debug/DebugDrawService.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(SmartObjectDebugRenderingComponent)
USmartObjectDebugRenderingComponent::USmartObjectDebugRenderingComponent(const FObjectInitializer& ObjectInitialize)
: Super(ObjectInitialize)
{
#if WITH_EDITORONLY_DATA
HitProxyPriority = HPP_Wireframe;
#endif
}
#if UE_ENABLE_DEBUG_DRAWING
void USmartObjectDebugRenderingComponent::OnRegister()
{
Super::OnRegister();
if (!HasAnyFlags(RF_ClassDefaultObject))
{
CanvasDebugDrawDelegateHandle = UDebugDrawService::Register(TEXT("Game"), FDebugDrawDelegate::CreateUObject(this, &USmartObjectDebugRenderingComponent::DebugDrawCanvas));
}
}
void USmartObjectDebugRenderingComponent::OnUnregister()
{
if (!HasAnyFlags(RF_ClassDefaultObject))
{
UDebugDrawService::Unregister(CanvasDebugDrawDelegateHandle);
}
Super::OnUnregister();
}
FDebugRenderSceneProxy* USmartObjectDebugRenderingComponent::CreateDebugSceneProxy()
{
FSmartObjectDebugSceneProxy* DebugProxy = new FSmartObjectDebugSceneProxy(*this, FDebugRenderSceneProxy::WireMesh, *ViewFlagName);
DebugDraw(DebugProxy);
return DebugProxy;
}
#endif // UE_ENABLE_DEBUG_DRAWING