10UEaseComponent::UEaseComponent()
12 PrimaryComponentTick.bCanEverTick =
true;
16void UEaseComponent::TickComponent(
float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
18 Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
20 this->UpdateTrack(DeltaTime);
24void UEaseComponent::UpdateTrack(
float DeltaTime)
26 for (
auto& Elem : FloatTracks)
28 Elem.Value.Update(DeltaTime);
31 for (
auto& Elem : VectorTracks)
33 Elem.Value.Update(DeltaTime);
36 for (
auto& Elem : RotatorTracks)
38 Elem.Value.Update(DeltaTime);
43float UEaseComponent::GetTrackAlpha(FName TrackName)
const
45 if (
auto* ElemPtr = FloatTracks.Find(TrackName))
47 return ElemPtr->GetAlpha();
50 if (
auto* ElemPtr = VectorTracks.Find(TrackName))
52 return ElemPtr->GetAlpha();
55 if (
auto* ElemPtr = RotatorTracks.Find(TrackName))
57 return ElemPtr->GetAlpha();
64float UEaseComponent::GetEaseFloatTrack(FName TrackName)
66 return FloatTracks.Contains(TrackName) ? FloatTracks[TrackName].Current : 0.f;
70void UEaseComponent::SetEaseFloatTrack(FName TrackName,
EEaseType EaseType,
float Start,
float Target,
float Duration)
81FVector UEaseComponent::GetEaseVectorTrack(FName TrackName)
83 return VectorTracks.Contains(TrackName) ? VectorTracks[TrackName].Current : FVector::ZeroVector;
87void UEaseComponent::SetEaseVectorTrack(FName TrackName,
EEaseType EaseType, FVector Start, FVector Target,
float Duration)
98FRotator UEaseComponent::GetEaseRotatorTrack(FName TrackName)
100 return RotatorTracks.Contains(TrackName) ? RotatorTracks[TrackName].Current : FRotator::ZeroRotator;
104void UEaseComponent::SetEaseRotatorTrack(FName TrackName,
EEaseType EaseType, FRotator Start, FRotator Target,
float Duration)
UEaseComponent 클래스를 선언합니다.
단일 float 값을 시간에 따라 Ease 처리하는 트랙 데이터입니다.
FRotator 값을 시간에 따라 Ease 처리하는 트랙 데이터입니다.
FVector 값을 시간에 따라 Ease 처리하는 트랙 데이터입니다.