KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UEaseComponent.cpp
이 파일의 문서화 페이지로 가기
1// Copyright (c) 2025 Doppleddiggong. All rights reserved. Unauthorized copying, modification, or distribution of this file, via any medium is strictly prohibited. Proprietary and confidential.
2
7#include "UEaseComponent.h"
8
10UEaseComponent::UEaseComponent()
11{
12 PrimaryComponentTick.bCanEverTick = true;
13}
14
16void UEaseComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
17{
18 Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
19
20 this->UpdateTrack(DeltaTime);
21}
22
24void UEaseComponent::UpdateTrack(float DeltaTime)
25{
26 for (auto& Elem : FloatTracks)
27 {
28 Elem.Value.Update(DeltaTime);
29 }
30
31 for (auto& Elem : VectorTracks)
32 {
33 Elem.Value.Update(DeltaTime);
34 }
35
36 for (auto& Elem : RotatorTracks)
37 {
38 Elem.Value.Update(DeltaTime);
39 }
40}
41
43float UEaseComponent::GetTrackAlpha(FName TrackName) const
44{
45 if (auto* ElemPtr = FloatTracks.Find(TrackName))
46 {
47 return ElemPtr->GetAlpha();
48 }
49
50 if (auto* ElemPtr = VectorTracks.Find(TrackName))
51 {
52 return ElemPtr->GetAlpha();
53 }
54
55 if (auto* ElemPtr = RotatorTracks.Find(TrackName))
56 {
57 return ElemPtr->GetAlpha();
58 }
59
60 return 0.f;
61}
62
64float UEaseComponent::GetEaseFloatTrack(FName TrackName)
65{
66 return FloatTracks.Contains(TrackName) ? FloatTracks[TrackName].Current : 0.f;
67}
68
70void UEaseComponent::SetEaseFloatTrack(FName TrackName, EEaseType EaseType, float Start, float Target, float Duration)
71{
72 FEaseFloatTrack& Track = FloatTracks.FindOrAdd(TrackName);
73 Track.EaseType = EaseType;
74 Track.Start = Start;
75 Track.Target = Target;
76 Track.Duration = Duration;
77 Track.ElapsedTime = 0.f;
78}
79
81FVector UEaseComponent::GetEaseVectorTrack(FName TrackName)
82{
83 return VectorTracks.Contains(TrackName) ? VectorTracks[TrackName].Current : FVector::ZeroVector;
84}
85
87void UEaseComponent::SetEaseVectorTrack(FName TrackName, EEaseType EaseType, FVector Start, FVector Target, float Duration)
88{
89 FEaseVectorTrack& Track = VectorTracks.FindOrAdd(TrackName);
90 Track.EaseType = EaseType;
91 Track.Start = Start;
92 Track.Target = Target;
93 Track.Duration = Duration;
94 Track.ElapsedTime = 0.f;
95}
96
98FRotator UEaseComponent::GetEaseRotatorTrack(FName TrackName)
99{
100 return RotatorTracks.Contains(TrackName) ? RotatorTracks[TrackName].Current : FRotator::ZeroRotator;
101}
102
104void UEaseComponent::SetEaseRotatorTrack(FName TrackName, EEaseType EaseType, FRotator Start, FRotator Target, float Duration)
105{
106 FEaseRotatorTrack& Track = RotatorTracks.FindOrAdd(TrackName);
107 Track.EaseType = EaseType;
108 Track.Start = Start;
109 Track.Target = Target;
110 Track.Duration = Duration;
111 Track.ElapsedTime = 0.f;
112}
EEaseType
Definition FEaseHelper.h:9
UEaseComponent 클래스를 선언합니다.
단일 float 값을 시간에 따라 Ease 처리하는 트랙 데이터입니다.
FRotator 값을 시간에 따라 Ease 처리하는 트랙 데이터입니다.
FVector 값을 시간에 따라 Ease 처리하는 트랙 데이터입니다.