5#include "CoreMinimal.h"
6#include "QuickTweenBase.h"
7#include "QuickVectorTween.generated.h"
10DECLARE_DELEGATE_RetVal_OneParam(FVector, FNativeVectorGetter,
UQuickVectorTween*);
11DECLARE_DELEGATE_TwoParams( FNativeVectorSetter,
const FVector&,
UQuickVectorTween* );
22 UQuickVectorTween() =
default;
28 const UObject* worldContextObject,
29 FNativeVectorGetter from,
30 FNativeVectorGetter to,
31 FNativeVectorSetter setter,
32 float duration = 1.0f,
33 float timeScale = 1.0f,
34 EEaseType easeType = EEaseType::Linear,
35 UCurveFloat* easeCurve =
nullptr,
37 ELoopType loopType = ELoopType::Restart,
38 const FString& tweenTag = FString(),
39 bool bShouldAutoKill =
true,
40 bool bShouldPlayWhilePaused =
false,
41 bool bShouldAutoPlay =
false)
43 From = MoveTemp(from);
45 Setter = MoveTemp(setter);
56 bShouldPlayWhilePaused,
83 UObject* worldContextObject,
84 FNativeVectorGetter from,
85 FNativeVectorGetter to,
86 FNativeVectorSetter setter,
87 float duration = 1.0f,
88 float timeScale = 1.0f,
89 EEaseType easeType = EEaseType::Linear,
90 UCurveFloat* easeCurve =
nullptr,
92 ELoopType loopType = ELoopType::Restart,
93 const FString& tweenTag = FString(),
94 bool bShouldAutoKill =
true,
95 bool bShouldPlayWhilePaused =
false,
96 bool bShouldAutoPlay =
false)
98 if (!from.IsBound() || !to.IsBound() || !setter.IsBound())
100 UE_LOG(LogQuickTweenBase, Warning, TEXT(
"UQuickVectorTween::CreateTween: One or more delegate functions are not bound."));
104 UQuickVectorTween* tween = NewObject<UQuickVectorTween>(worldContextObject);
118 bShouldPlayWhilePaused,
124 UFUNCTION(BlueprintPure, meta = (Keywords =
"Tween"), Category =
"Tween|Info")
128 UFUNCTION(BlueprintPure, meta = (Keywords =
"Tween"), Category =
"Tween|Info")
129 [[nodiscard]] FVector
GetStartValue()
const {
return StartValue.Get(FVector::ZeroVector); }
132 UFUNCTION(BlueprintPure, meta = (Keywords =
"Tween"), Category =
"Tween|Info")
133 [[nodiscard]] FVector
GetEndValue()
const {
return EndValue.Get(FVector::ZeroVector); }
144 FNativeVectorGetter From;
147 FNativeVectorGetter To;
150 TOptional<FVector> StartValue;
153 TOptional<FVector> EndValue;
156 FNativeVectorSetter Setter;
159 FVector CurrentValue;
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
Definition QuickVectorTween.h:19
FVector GetCurrentValue() const
Definition QuickVectorTween.h:125
FVector GetEndValue() const
Definition QuickVectorTween.h:133
virtual void ApplyAlphaValue(float alpha) override
Definition QuickVectorTween.cpp:9
static UQuickVectorTween * CreateTween(UObject *worldContextObject, FNativeVectorGetter from, FNativeVectorGetter to, FNativeVectorSetter 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 QuickVectorTween.h:82
virtual void HandleOnStart() override
Definition QuickVectorTween.cpp:21
FVector GetStartValue() const
Definition QuickVectorTween.h:129
virtual void HandleOnComplete() override
Definition QuickVectorTween.cpp:46