31 virtual void Tick(
float DeltaSeconds)
override;
34 bool StartCircleWarningAttached(USceneComponent* AttachParent,
const FVector& LocalOffset,
float WarningDuration,
float FinalRadius,
const FPatternWarningDecalSettings& Settings);
35 bool StartCircleWarningAtTransform(
const FTransform& WorldTransform,
float WarningDuration,
float FinalRadius,
const FPatternWarningDecalSettings& Settings);
38 void SetLineLengthRatio(
float LengthRatio)
const;
41 void ReturnToPoolImmediately();
44 virtual void OnSpawnFromPool_Implementation()
override;
45 virtual void OnReturnToPool_Implementation()
override;
48 bool StartCircleProgress();
53 bool ConfigureDecalComponent(UDecalComponent* DecalComponent, UMaterialInterface* DecalMaterial,
const FVector& DecalSize, int32 SortOrder,
float FadeInDuration)
const;
55 void BeginStopWarning(
bool bCompleteProgress);
56 void ApplyFadeOut(UDecalComponent* DecalComponent,
float FadeOutDuration)
const;
59 void UpdateCircleProgress();
60 void UpdateCircleWarning(
float Alpha)
const;
62 void ResetRuntimeState();
63 void ResetDecalComponent(UDecalComponent* DecalComponent)
const;
66 UPROPERTY(VisibleAnywhere, Category =
"Warning")
67 TObjectPtr<USceneComponent> SceneRootComponent;
69 UPROPERTY(VisibleAnywhere, Category = "Warning")
70 TObjectPtr<UDecalComponent> MaxRangeDecalComponent;
72 UPROPERTY(VisibleAnywhere, Category = "Warning")
73 TObjectPtr<UDecalComponent> FillDecalComponent;
76 FVector CurrentLineStartLocation = FVector::ZeroVector;
77 float WarningStartTime = 0.0f;
78 float CurrentWarningDuration = 0.0f;
79 float CurrentFadeOutDuration = 0.0f;
80 float CurrentLineLength = 0.0f;
81 float CurrentCircleStartRadius = 0.0f;
82 float CurrentCircleFinalRadius = 0.0f;
83 bool bIsFadingOut = false;
85 FTimerHandle ReturnToPoolTimerHandle;