5#include "CoreMinimal.h"
6#include "QuickTweenBase.h"
7#include "QuickFloatTween.generated.h"
10DECLARE_DELEGATE_RetVal_OneParam(
float, FNativeFloatGetter,
UQuickFloatTween*);
11DECLARE_DELEGATE_TwoParams( FNativeFloatSetter,
const float,
UQuickFloatTween* );
21 UQuickFloatTween() =
default;
27 const UObject* worldContextObject,
28 FNativeFloatGetter from,
29 FNativeFloatGetter to,
30 FNativeFloatSetter setter,
31 float duration = 1.0f,
32 float timeScale = 1.0f,
33 EEaseType easeType = EEaseType::Linear,
34 UCurveFloat* easeCurve =
nullptr,
36 ELoopType loopType = ELoopType::Restart,
37 const FString& tweenTag = FString(),
38 bool bShouldAutoKill =
true,
39 bool bShouldPlayWhilePaused =
false,
40 bool bShouldAutoPlay =
false)
42 From = MoveTemp(from);
44 Setter = MoveTemp(setter);
55 bShouldPlayWhilePaused,
82 UObject* worldContextObject,
83 FNativeFloatGetter from,
84 FNativeFloatGetter to,
85 FNativeFloatSetter setter,
86 float duration = 1.0f,
87 float timeScale = 1.0f,
88 EEaseType easeType = EEaseType::Linear,
89 UCurveFloat* easeCurve =
nullptr,
91 ELoopType loopType = ELoopType::Restart,
92 const FString& tweenTag = FString(),
93 bool bShouldAutoKill =
true,
94 bool bShouldPlayWhilePaused =
false,
95 bool bShouldAutoPlay =
false)
97 if (!from.IsBound() || !to.IsBound() || !setter.IsBound())
99 UE_LOG(LogQuickTweenBase, Warning, TEXT(
"UQuickFloatTween::CreateTween: One or more delegate functions are not bound."));
103 UQuickFloatTween* tween = NewObject<UQuickFloatTween>(worldContextObject);
117 bShouldPlayWhilePaused,
123 UFUNCTION(BlueprintPure, meta = (Keywords =
"Tween"), Category=
"Tween|Info")
127 UFUNCTION(BlueprintCallable, meta = (Keywords =
"Tween"), Category=
"Tween|Info")
131 UFUNCTION(BlueprintCallable, meta = (Keywords =
"Tween"), Category=
"Tween|Info")
132 [[nodiscard]]
float GetEndValue()
const {
return EndValue.Get(0.0f); }
142 FNativeFloatGetter From;
145 FNativeFloatGetter To;
148 TOptional<float> StartValue;
151 TOptional<float> EndValue;
154 FNativeFloatSetter Setter;
157 float CurrentValue = 0.0f;
Definition QuickFloatTween.h:18
virtual void HandleOnStart() override
Definition QuickFloatTween.cpp:20
float GetCurrentValue() const
Definition QuickFloatTween.h:124
virtual void HandleOnComplete() override
Definition QuickFloatTween.cpp:48
virtual void ApplyAlphaValue(float alpha) override
Definition QuickFloatTween.cpp:8
float GetEndValue() const
Definition QuickFloatTween.h:132
static UQuickFloatTween * CreateTween(UObject *worldContextObject, FNativeFloatGetter from, FNativeFloatGetter to, FNativeFloatSetter setter, float duration=1.0f, float timeScale=1.0f, EEaseType easeType=EEaseType::Linear, UCurveFloat *easeCurve=nullptr, int32 loops=1, ELoopType loopType=ELoopType::Restart, const FString &tweenTag=FString(), bool bShouldAutoKill=true, bool bShouldPlayWhilePaused=false, bool bShouldAutoPlay=false)
Definition QuickFloatTween.h:81
float GetStartValue() const
Definition QuickFloatTween.h:128
Definition QuickTweenBase.h:26
void SetUp(const UObject *worldContextObject, float duration, float timeScale, EEaseType easeType, UCurveFloat *easeCurve, int32 loops, ELoopType loopType, const FString &tweenTag=FString(), bool bShouldAutoKill=true, bool bShouldPlayWhilePaused=false, bool bShouldAutoPlay=false)
Definition QuickTweenBase.cpp:20