// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "StateTreeTaskBase.h" #include "StateTreeDebugTextTask.generated.h" enum class EStateTreeRunStatus : uint8; struct FStateTreeTransitionResult; USTRUCT() struct STATETREEMODULE_API FStateTreeDebugTextTaskInstanceData { GENERATED_BODY() /** Optional actor where to draw the text at. */ UPROPERTY(EditAnywhere, Category = "Input", meta=(Optional)) TObjectPtr ReferenceActor = nullptr; }; /** * Draws debug text on the HUD associated to the player controller. */ USTRUCT(meta = (DisplayName = "Debug Text Task")) struct STATETREEMODULE_API FStateTreeDebugTextTask : public FStateTreeTaskCommonBase { GENERATED_BODY() using FInstanceDataType = FStateTreeDebugTextTaskInstanceData; FStateTreeDebugTextTask() = default; virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); } virtual EStateTreeRunStatus EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; virtual void ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; UPROPERTY(EditAnywhere, Category = "Parameter") FString Text; UPROPERTY(EditAnywhere, Category = "Parameter") FColor TextColor = FColor::White; UPROPERTY(EditAnywhere, Category = "Parameter", meta=(ClampMin = 0, UIMin = 0)) float FontScale = 1.0f; UPROPERTY(EditAnywhere, Category = "Parameter") FVector Offset = FVector::ZeroVector; UPROPERTY(EditAnywhere, Category = "Parameter") bool bEnabled = true; };