Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
ULSE_FadeScreen 클래스 참조

#include <LSE_FadeScreen.h>

ULSE_FadeScreen에 대한 상속 다이어그램 :
Inheritance graph
ULSE_FadeScreen에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

virtual void OnPreLoadStart (const FLevelStreamingContext Context) override
 
virtual ELevelStreamingEffectResult OnPreLoadUpdate (const FLevelStreamingContext Context) override
 
virtual void OnPreLoadEnd (const FLevelStreamingContext Context) override
 
virtual void OnPostLoadStart (const FLevelStreamingContext Context) override
 
virtual ELevelStreamingEffectResult OnPostLoadUpdate (const FLevelStreamingContext Context) override
 
virtual void OnPostLoadEnd (const FLevelStreamingContext Context) override
 
- ULevelStreamingEffect(으)로부터 상속된 Public 멤버 함수
virtual void InitEffect ()
 
virtual void OnCompletedEffectsByPhase (const ELevelStreamingPhase CompletedPhase)
 
virtual void ExecuteUpdate (ELevelStreamingPhase Phase, const FLevelStreamingContext &Context)
 
virtual void CallPrepareOrFinishEvent (ELevelStreamingPhase Phase, ELevelStreamingEffectCallType CallType, const FLevelStreamingContext &Context)
 
FORCEINLINE ELevelStreamingEffectResult GetLastExecutionResult () const
 
FORCEINLINE bool IsSkipThisEffect () const
 

Public 속성

FUIContext UIContext
 
bool bAutoInitializeAlpha = true
 
float FadeInDuration = 1.3f
 
float FadeHoldDuration = 2.0f
 
float FadeOutDuration = 1.3f
 

Protected 속성

float ElapsedTime = 0.0f
 
- ULevelStreamingEffect(으)로부터 상속된 Protected 속성
bool bSkipThisEffect = false
 
ELevelStreamingEffectResult LastExecutionResult = ELevelStreamingEffectResult::None
 

Private 속성

TWeakObjectPtr< UScreenFadeWidgetActiveFadeWidget
 

멤버 함수 문서화

◆ OnPostLoadEnd()

void ULSE_FadeScreen::OnPostLoadEnd ( const FLevelStreamingContext  Context)
overridevirtual

ILevelPostLoadInterface를 구현.

155{
156 ElapsedTime = 0.0f;
157
158 if (ActiveFadeWidget.IsValid())
159 {
160 ActiveFadeWidget->SetFadeAlpha(0.0f);
161 }
162
163 LOG_INFO(LogCKLevel, "FadeIn 완료");
164
165 if (ActiveFadeWidget.IsValid() == false)
166 {
167 return;
168 }
169
170 UGameInstance* GI = Context.OriginalWorld->GetGameInstance();
171 check(GI);
172
173 UUIManagementSubsystem* UISubsystem = GI->GetSubsystem<UUIManagementSubsystem>();
174 check(UISubsystem);
175
176 UISubsystem->PopWidget(ActiveFadeWidget.Get());
177 ActiveFadeWidget.Reset();
178}
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:38
TWeakObjectPtr< UScreenFadeWidget > ActiveFadeWidget
Definition LSE_FadeScreen.h:53
float ElapsedTime
Definition LSE_FadeScreen.h:49
Definition UIManagementSubsystem.h:22
bool PopWidget(UUserWidgetBase *Widget)
Definition UIManagementSubsystem.cpp:168
TObjectPtr< UWorld > OriginalWorld
Definition LevelStreamingContext.h:27
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnPostLoadStart()

void ULSE_FadeScreen::OnPostLoadStart ( const FLevelStreamingContext  Context)
overridevirtual

ILevelPostLoadInterface를 구현.

96{
97 ElapsedTime = 0.0f;
98
99 if (!ActiveFadeWidget.IsValid())
100 {
101 LOG_WARNING(LogCKLevel, "Fade 위젯이 없어 FadeIn alpha를 적용할 수 없습니다.");
102 return;
103 }
104
106 {
107 ActiveFadeWidget->SetFadeAlpha(1.0f);
108 }
109
110 LOG_INFO(LogCKLevel, "FadeIn 시작: 유지 %.2f초, 전환 %.2f초", FadeHoldDuration, FadeOutDuration);
111}
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:39
bool bAutoInitializeAlpha
Definition LSE_FadeScreen.h:37
float FadeHoldDuration
Definition LSE_FadeScreen.h:43
float FadeOutDuration
Definition LSE_FadeScreen.h:46

◆ OnPostLoadUpdate()

ELevelStreamingEffectResult ULSE_FadeScreen::OnPostLoadUpdate ( const FLevelStreamingContext  Context)
overridevirtual

ILevelPostLoadInterface를 구현.

115{
116 if (Context.OriginalWorld == nullptr)
117 {
118 LOG_ERROR(LogCKLevel, "OriginalWorld가 없어 FadeIn을 진행할 수 없습니다.");
119 return ELevelStreamingEffectResult::Completed;
120 }
121
122 ElapsedTime += Context.OriginalWorld->GetDeltaSeconds();
123
125 {
126 return ELevelStreamingEffectResult::InProgress;
127 }
128
129 if (FadeOutDuration < KINDA_SMALL_NUMBER)
130 {
131 LOG_WARNING(LogCKLevel, "FadeInDuration이 0 이하라 FadeIn을 즉시 완료합니다. Duration: %.2f", FadeOutDuration);
132 return ELevelStreamingEffectResult::Completed;
133 }
134
135 const float FadeOutElapsedTime = ElapsedTime - FadeHoldDuration;
136 const float Alpha = FMath::Clamp(1.0f - (FadeOutElapsedTime / FadeOutDuration), 0.0f, 1.0f);
137
138 if (ActiveFadeWidget.IsValid())
139 {
140 ActiveFadeWidget->SetFadeAlpha(Alpha);
141 }
142
143 if (FadeOutElapsedTime >= FadeOutDuration)
144 {
145 return ELevelStreamingEffectResult::Completed;
146 }
147 else
148 {
149 return ELevelStreamingEffectResult::InProgress;
150 }
151}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40

◆ OnPreLoadEnd()

void ULSE_FadeScreen::OnPreLoadEnd ( const FLevelStreamingContext  Context)
overridevirtual

ILevelPreLoadInterface를 구현.

84{
85 if (ActiveFadeWidget.IsValid())
86 {
87 ActiveFadeWidget->SetFadeAlpha(1.0f);
88 }
89
90 LOG_INFO(LogCKLevel, "FadeOut 완료");
91 ElapsedTime = 0.0f;
92}

◆ OnPreLoadStart()

void ULSE_FadeScreen::OnPreLoadStart ( const FLevelStreamingContext  Context)
overridevirtual

ILevelPreLoadInterface를 구현.

13{
14 ElapsedTime = 0.0f;
15
16 if (Context.OriginalWorld == nullptr)
17 {
18 LOG_ERROR(LogCKLevel, "OriginalWorld가 없어 FadeOut을 시작할 수 없습니다.");
19 return;
20 }
21
22 UGameInstance* GI = Context.OriginalWorld->GetGameInstance();
23 check(GI);
24
25 UUIManagementSubsystem* UISubsystem = GI->GetSubsystem<UUIManagementSubsystem>();
26 check(UISubsystem);
27
28 UUILayer* OutLayer = nullptr;
29 FUIContext FadeContext = UIContext;
30 FadeContext.Primary = true;
31
32 UUserWidgetBase* Widget = UISubsystem->PushPlayerWidget(FadeContext, OutLayer);
33 ActiveFadeWidget = Cast<UScreenFadeWidget>(Widget);
34
35 if (!ActiveFadeWidget.IsValid())
36 {
37 LOG_ERROR(LogCKLevel, "Fade 위젯이 유효하지 않습니다.");
38 return;
39 }
40
42 {
43 ActiveFadeWidget->SetFadeAlpha(0.0f);
44 }
45
46 LOG_INFO(LogCKLevel, "FadeOut 시작: %.2f초", FadeInDuration);
47}
FUIContext UIContext
Definition LSE_FadeScreen.h:34
float FadeInDuration
Definition LSE_FadeScreen.h:40
Definition UILayer.h:14
UUserWidgetBase * PushPlayerWidget(const FUIContext &Context, UUILayer *&OutLayer)
Definition UIManagementSubsystem.cpp:112
Definition UserWidgetBase.h:33
Definition UIContext.h:10
bool Primary
Definition UIContext.h:28
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnPreLoadUpdate()

ELevelStreamingEffectResult ULSE_FadeScreen::OnPreLoadUpdate ( const FLevelStreamingContext  Context)
overridevirtual

ILevelPreLoadInterface를 구현.

51{
52 if (Context.OriginalWorld == nullptr)
53 {
54 LOG_ERROR(LogCKLevel, "OriginalWorld가 없어 FadeOut을 진행할 수 없습니다.");
55 return ELevelStreamingEffectResult::Completed;
56 }
57
58 if (FadeInDuration < KINDA_SMALL_NUMBER)
59 {
60 LOG_WARNING(LogCKLevel, "FadeOutDuration이 0 이하라 FadeOut을 즉시 완료합니다. Duration: %.2f", FadeInDuration);
61 return ELevelStreamingEffectResult::Completed;
62 }
63
64 ElapsedTime += Context.OriginalWorld->GetDeltaSeconds();
65 const float Alpha = FMath::Clamp(ElapsedTime / FadeInDuration, 0.0f, 1.0f);
66
67 if (ActiveFadeWidget.IsValid())
68 {
69 ActiveFadeWidget->SetFadeAlpha(Alpha);
70 }
71
73 {
74 return ELevelStreamingEffectResult::Completed;
75 }
76 else
77 {
78 return ELevelStreamingEffectResult::InProgress;
79 }
80}

멤버 데이터 문서화

◆ ActiveFadeWidget

TWeakObjectPtr<UScreenFadeWidget> ULSE_FadeScreen::ActiveFadeWidget
private

◆ bAutoInitializeAlpha

bool ULSE_FadeScreen::bAutoInitializeAlpha = true

◆ ElapsedTime

float ULSE_FadeScreen::ElapsedTime = 0.0f
protected

◆ FadeHoldDuration

float ULSE_FadeScreen::FadeHoldDuration = 2.0f

◆ FadeInDuration

float ULSE_FadeScreen::FadeInDuration = 1.3f

◆ FadeOutDuration

float ULSE_FadeScreen::FadeOutDuration = 1.3f

◆ UIContext

FUIContext ULSE_FadeScreen::UIContext

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: