5#include "CoreMinimal.h"
6#include "QuickTweenBase.h"
7#include "QuickRotatorTween.generated.h"
12DECLARE_DELEGATE_TwoParams( FNativeRotatorSetter,
const FRotator&,
UQuickRotatorTween* );
23 UQuickRotatorTween() =
default;
29 const UObject* worldContextObject,
30 FNativeRotatorGetter from,
31 FNativeRotatorGetter to,
32 bool bUseShortestPath,
33 FNativeRotatorSetter setter,
34 float duration = 1.0f,
35 float timeScale = 1.0f,
36 EEaseType easeType = EEaseType::Linear,
37 UCurveFloat* easeCurve =
nullptr,
39 ELoopType loopType = ELoopType::Restart,
40 const FString& tweenTag = FString(),
41 bool bShouldAutoKill =
true,
42 bool bShouldPlayWhilePaused =
false,
43 bool bShouldAutoPlay =
false)
45 From = MoveTemp(from);
47 Setter = MoveTemp(setter);
48 bShortestPath = bUseShortestPath;
59 bShouldPlayWhilePaused,
87 UObject* worldContextObject,
88 FNativeRotatorGetter from,
89 FNativeRotatorGetter to,
90 bool bUseShortestPath,
91 FNativeRotatorSetter setter,
92 float duration = 1.0f,
93 float timeScale = 1.0f,
94 EEaseType easeType = EEaseType::Linear,
95 UCurveFloat* easeCurve =
nullptr,
97 ELoopType loopType = ELoopType::Restart,
98 const FString& tweenTag = FString(),
99 bool bShouldAutoKill =
true,
100 bool bShouldPlayWhilePaused =
false,
101 bool bShouldAutoPlay =
false)
103 if (!from.IsBound() || !to.IsBound() || !setter.IsBound())
105 UE_LOG(LogQuickTweenBase, Warning, TEXT(
"UQuickRotatorTween::CreateTween: One or more delegate functions are not bound."));
109 UQuickRotatorTween* tween = NewObject<UQuickRotatorTween>(worldContextObject);
124 bShouldPlayWhilePaused,
130 UFUNCTION(BlueprintPure, meta = (Keywords =
"Tween"), Category =
"Tween|Info")
134 UFUNCTION(BlueprintPure, meta = (Keywords =
"Tween"), Category =
"Tween|Info")
135 [[nodiscard]] FRotator
GetStartValue()
const {
return StartValue.Get(FRotator::ZeroRotator); }
138 UFUNCTION(BlueprintPure, meta = (Keywords =
"Tween"), Category =
"Tween|Info")
139 [[nodiscard]] FRotator
GetEndValue()
const {
return EndValue.Get(FRotator::ZeroRotator); }
149 FNativeRotatorGetter From;
152 FNativeRotatorGetter To;
155 TOptional<FRotator> StartValue;
158 TOptional<FRotator> EndValue;
161 FNativeRotatorSetter Setter;
164 bool bShortestPath =
true;
167 FRotator CurrentValue;
Definition QuickRotatorTween.h:20
virtual void HandleOnStart() override
Definition QuickRotatorTween.cpp:23
FRotator GetEndValue() const
Definition QuickRotatorTween.h:139
static UQuickRotatorTween * CreateTween(UObject *worldContextObject, FNativeRotatorGetter from, FNativeRotatorGetter to, bool bUseShortestPath, FNativeRotatorSetter 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 QuickRotatorTween.h:86
virtual void HandleOnComplete() override
Definition QuickRotatorTween.cpp:50
virtual void ApplyAlphaValue(float alpha) override
Definition QuickRotatorTween.cpp:8
FRotator GetCurrentValue() const
Definition QuickRotatorTween.h:131
FRotator GetStartValue() const
Definition QuickRotatorTween.h:135
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