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

#include <TutorialPopupWidget.h>

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

Public 멤버 함수

virtual void OnPushedToLayer () override
 
virtual void OnActivated () override
 
virtual void OnDeactivated () override
 
- UPopupWidgetBase(으)로부터 상속된 Public 멤버 함수
virtual void OnPoppedFromLayer () override
 
virtual void BeginDestroy () override
 
void Close (EPopupResult Result)
 
void FinishClose ()
 
FORCEINLINE EPopupResult GetResult () const
 
FORCEINLINE bool IsClosing () const
 
- UUserWidgetBase(으)로부터 상속된 Public 멤버 함수
virtual void SetAbilitySystemComponent (AActor *InOwner)
 
virtual UAbilitySystemComponent * GetAbilitySystemComponent () const override
 
void Activate ()
 
void Deactivate ()
 
FORCEINLINE FGameplayTag GetLayerTag () const
 
FORCEINLINE void SetLayerTag (const FGameplayTag InTag)
 
FORCEINLINE bool IsPrimary () const
 
FORCEINLINE void SetPrimary (const bool InPrimary)
 
FORCEINLINE EWidgetState GetWidgetState () const
 
FORCEINLINE void SetWidgetState (const EWidgetState InState)
 
FORCEINLINE UWaitForWidgetActivationGetActivationHandle ()
 
FORCEINLINE bool HasAppearanceAnim () const
 
FORCEINLINE bool HasDisappearanceAnim () const
 

Protected 멤버 함수

virtual void NativeConstruct () override
 
virtual void NativeDestruct () override
 
void CreateTutorialContents (const TArray< FDT_TutorialTable > &Table)
 
void AddTutorialContent (UTutorialContentWidget *ContentWidget)
 
void RemoveTutorialContent (UTutorialContentWidget *ContentWidget)
 
void DisplayTutorialContent (UTutorialContentWidget *ContentWidget)
 
void DisplayFirstTutorialContent ()
 
void ClearTutorialContents ()
 
TArray< FDT_TutorialTableBuildTutorialRows () const
 
void OnTutorialContentClicked (UTutorialContentWidget *ContentWidget)
 
void OnCloseButtonClicked ()
 
- UPopupWidgetBase(으)로부터 상속된 Protected 멤버 함수
void OnCloseRequested (EPopupResult Result)
 
virtual void OnCloseRequested_Implementation (EPopupResult Result)
 
- UUserWidgetBase(으)로부터 상속된 Protected 멤버 함수
virtual void OnWidgetActivated ()
 
virtual void OnWidgetDeactivated ()
 
void OnPushedToLayer_Internal ()
 
void OnPoppedFromLayer_Internal ()
 
void OnActivated_Internal ()
 
void OnDeactivated_Internal ()
 

Protected 속성

TSubclassOf< UTutorialContentWidgetTutorialContentWidgetClass
 
TObjectPtr< UMediaPlayer > TutorialMediaPlayer
 
TObjectPtr< UMaterialInterface > TutorialVideoMaterial
 
TObjectPtr< UScrollBox > SB_TutorialContentList
 
TObjectPtr< UImage > IMG_TutorialVideo
 
TObjectPtr< UTextBlock > TXT_DescriptionBoxTitle
 
TObjectPtr< UTextBlock > TXT_Description
 
TObjectPtr< UButton > BTN_CloseButton
 
- UUserWidgetBase(으)로부터 상속된 Protected 속성
EWidgetState WidgetState
 
TObjectPtr< UAbilitySystemComponent > ASC
 
FGameplayTag LayerTag
 
bool bPrimary = false
 
TObjectPtr< UWidgetAnimation > AppearanceAnim
 
TObjectPtr< UWidgetAnimation > DisappearanceAnim
 

Private 속성

TArray< TObjectPtr< UTutorialContentWidget > > TutorialContentWidgets
 

추가로 상속된 멤버들

- UPopupWidgetBase(으)로부터 상속된 Public 속성
FOnPopupClosed OnPopupClosed
 

멤버 함수 문서화

◆ AddTutorialContent()

void UTutorialPopupWidget::AddTutorialContent ( UTutorialContentWidget ContentWidget)
protected
122{
123 if (ContentWidget == nullptr)
124 {
125 LOG_ERROR(LogCK, "%s가 nullptr입니다.", NAMEOF(UTutorialContentWidget));
126 return;
127 }
128
129 if (SB_TutorialContentList == nullptr)
130 {
131 LOG_ERROR(LogCK, "%s 바인딩이 없습니다.", NAMEOF_VAR(SB_TutorialContentList));
132 return;
133 }
134
135 SB_TutorialContentList->AddChild(ContentWidget);
136 TutorialContentWidgets.Add(ContentWidget);
137}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define NAMEOF_VAR(Expr)
Definition CK_UE.h:34
#define NAMEOF(Type)
Definition CK_UE.h:30
Definition TutorialContentWidget.h:21
TArray< TObjectPtr< UTutorialContentWidget > > TutorialContentWidgets
Definition TutorialPopupWidget.h:77
TObjectPtr< UScrollBox > SB_TutorialContentList
Definition TutorialPopupWidget.h:61
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ BuildTutorialRows()

TArray< FDT_TutorialTable > UTutorialPopupWidget::BuildTutorialRows ( ) const
protected
279{
280 TArray<FDT_TutorialTable> Result;
281
282 UStageManifest* StageManifest = UDataBundleRegistry::GetBundleAssetByTag<UStageManifest>(TAG_BUNDLE_INITIAL);
283
284 if (StageManifest == nullptr)
285 {
286 LOG_WARNING(LogCK, "%s를 찾을 수 없어 튜토리얼 데이터를 만들 수 없습니다.", NAMEOF(UStageManifest));
287 return Result;
288 }
289
290 const UDataTable* TutorialTable = StageManifest->TutorialDataMap.LoadSynchronous();
291
292 if (TutorialTable == nullptr)
293 {
294 LOG_WARNING(LogCK, "TutorialDataMap 로드 실패: DataTable이 nullptr입니다.");
295 return Result;
296 }
297
298 TArray<FDT_TutorialTable*> TutorialRows;
299 TutorialTable->GetAllRows(TEXT("UTutorialPopupWidget::BuildTutorialRows"), TutorialRows);
300
301 for (const FDT_TutorialTable* Row : TutorialRows)
302 {
303 if (Row)
304 {
305 Result.Add(*Row);
306 }
307 }
308
309 Result.Sort([](const FDT_TutorialTable& Left, const FDT_TutorialTable& Right)
310 {
311 return Left.Tutorial_ID < Right.Tutorial_ID;
312 });
313
314 if (Result.IsEmpty())
315 {
316 LOG_WARNING(LogCK, "튜토리얼 데이터가 없습니다.");
317 }
318
319 return Result;
320}
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:39
Definition StageManifest.h:161
TSoftObjectPtr< UDataTable > TutorialDataMap
Definition StageManifest.h:252
Definition FDT_TutorialTable.h:10
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ClearTutorialContents()

void UTutorialPopupWidget::ClearTutorialContents ( )
protected
260{
262 {
263 if (ContentWidget)
264 {
265 ContentWidget->OnTutorialContentClicked.RemoveAll(this);
266 }
267 }
268
270
272 {
273 SB_TutorialContentList->ClearChildren();
274 }
275}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateTutorialContents()

void UTutorialPopupWidget::CreateTutorialContents ( const TArray< FDT_TutorialTable > &  Table)
protected
87{
89
90 if (SB_TutorialContentList == nullptr)
91 {
92 LOG_ERROR(LogCK, "%s 바인딩이 없습니다.", NAMEOF_VAR(SB_TutorialContentList));
93 return;
94 }
95
96 if (TutorialContentWidgetClass == nullptr)
97 {
98 LOG_ERROR(LogCK, "%s가 설정되지 않았습니다.", NAMEOF_VAR(TutorialContentWidgetClass));
99 return;
100 }
101
102 for (const FDT_TutorialTable& TutorialRow : Table)
103 {
104 UTutorialContentWidget* ContentWidget = CreateWidget<UTutorialContentWidget>(GetOwningPlayer(), TutorialContentWidgetClass);
105
106 if (ContentWidget == nullptr)
107 {
108 LOG_ERROR(LogCK, "%s 생성에 실패했습니다.", NAMEOF(UTutorialContentWidget));
109 continue;
110 }
111
112 ContentWidget->InitializeTutorialContent(TutorialRow);
114 AddTutorialContent(ContentWidget);
115 }
116
118}
FOnTutorialContentClicked OnTutorialContentClicked
Definition TutorialContentWidget.h:59
void InitializeTutorialContent(const FDT_TutorialTable &InTutorialData)
Definition TutorialContentWidget.cpp:95
TSubclassOf< UTutorialContentWidget > TutorialContentWidgetClass
Definition TutorialPopupWidget.h:52
void DisplayFirstTutorialContent()
Definition TutorialPopupWidget.cpp:239
void AddTutorialContent(UTutorialContentWidget *ContentWidget)
Definition TutorialPopupWidget.cpp:121
void OnTutorialContentClicked(UTutorialContentWidget *ContentWidget)
Definition TutorialPopupWidget.cpp:323
void ClearTutorialContents()
Definition TutorialPopupWidget.cpp:259
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisplayFirstTutorialContent()

void UTutorialPopupWidget::DisplayFirstTutorialContent ( )
protected
240{
241 if (TutorialContentWidgets.IsEmpty() == false)
242 {
244 return;
245 }
246
248 {
249 TutorialMediaPlayer->Close();
250 }
251
253 {
254 IMG_TutorialVideo->SetVisibility(ESlateVisibility::Collapsed);
255 }
256}
TObjectPtr< UImage > IMG_TutorialVideo
Definition TutorialPopupWidget.h:64
TObjectPtr< UMediaPlayer > TutorialMediaPlayer
Definition TutorialPopupWidget.h:55
void DisplayTutorialContent(UTutorialContentWidget *ContentWidget)
Definition TutorialPopupWidget.cpp:157
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisplayTutorialContent()

void UTutorialPopupWidget::DisplayTutorialContent ( UTutorialContentWidget ContentWidget)
protected
158{
159 if (ContentWidget == nullptr)
160 {
161 return;
162 }
163
164 const FDT_TutorialTable& TutorialData = ContentWidget->GetTutorialData();
165
167 {
168 TXT_DescriptionBoxTitle->SetText(TutorialData.Title);
169 }
170 else
171 {
172 LOG_ERROR(LogCK, "%s 바인딩이 없습니다.", NAMEOF_VAR(TXT_DescriptionBoxTitle));
173 }
174
175 if (TXT_Description)
176 {
177 TXT_Description->SetText(TutorialData.Description);
178 }
179 else
180 {
181 LOG_ERROR(LogCK, "%s 바인딩이 없습니다.", NAMEOF_VAR(TXT_Description));
182 }
183
184 if (IMG_TutorialVideo == nullptr)
185 {
186 LOG_ERROR(LogCK, "%s 바인딩이 없습니다.", NAMEOF_VAR(IMG_TutorialVideo));
187 return;
188 }
189
190 if (TutorialMediaPlayer == nullptr)
191 {
192 IMG_TutorialVideo->SetVisibility(ESlateVisibility::Collapsed);
193 LOG_ERROR(LogCK, "%s가 설정되지 않았습니다.", NAMEOF_VAR(TutorialMediaPlayer));
194 return;
195 }
196
197 const FString VideoPath = TutorialData.VideoPath.ToString();
198
199 if (VideoPath.IsEmpty())
200 {
201 TutorialMediaPlayer->Close();
202 IMG_TutorialVideo->SetVisibility(ESlateVisibility::Collapsed);
203 return;
204 }
205
206 UMediaSource* TutorialMediaSource = LoadObject<UMediaSource>(nullptr, *VideoPath);
207
208 if (IsValid(TutorialMediaSource) == false)
209 {
210 TutorialMediaPlayer->Close();
211 IMG_TutorialVideo->SetVisibility(ESlateVisibility::Collapsed);
212 LOG_WARNING(LogCK, "Tutorial media source 로드 실패: %s", *VideoPath);
213 return;
214 }
215
217 {
218 IMG_TutorialVideo->SetBrushFromMaterial(TutorialVideoMaterial);
219 }
220
221 TutorialMediaPlayer->Close();
222 TutorialMediaPlayer->PlayOnOpen = true;
223 TutorialMediaPlayer->SetLooping(true);
224
225 if (TutorialMediaPlayer->OpenSource(TutorialMediaSource))
226 {
227 TutorialMediaPlayer->Play();
228 IMG_TutorialVideo->SetVisibility(ESlateVisibility::Visible);
229 }
230 else
231 {
232 TutorialMediaPlayer->Close();
233 IMG_TutorialVideo->SetVisibility(ESlateVisibility::Collapsed);
234 LOG_WARNING(LogCK, "Tutorial media source 재생 실패: %s", *VideoPath);
235 }
236}
FORCEINLINE const FDT_TutorialTable & GetTutorialData() const
Definition TutorialContentWidget.h:44
TObjectPtr< UTextBlock > TXT_DescriptionBoxTitle
Definition TutorialPopupWidget.h:67
TObjectPtr< UMaterialInterface > TutorialVideoMaterial
Definition TutorialPopupWidget.h:58
TObjectPtr< UTextBlock > TXT_Description
Definition TutorialPopupWidget.h:70
FText Title
Definition FDT_TutorialTable.h:25
FText VideoPath
Definition FDT_TutorialTable.h:34
FText Description
Definition FDT_TutorialTable.h:28
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NativeConstruct()

void UTutorialPopupWidget::NativeConstruct ( )
overrideprotectedvirtual
25{
26 Super::NativeConstruct();
27
29 {
30 IMG_TutorialVideo->SetBrushFromMaterial(TutorialVideoMaterial);
31 }
32
34 {
36 }
37 else
38 {
39 LOG_ERROR(LogCK, "%s 바인딩이 없습니다.", NAMEOF_VAR(BTN_CloseButton));
40 }
41}
void OnCloseButtonClicked()
Definition TutorialPopupWidget.cpp:329
TObjectPtr< UButton > BTN_CloseButton
Definition TutorialPopupWidget.h:73
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ NativeDestruct()

void UTutorialPopupWidget::NativeDestruct ( )
overrideprotectedvirtual
45{
47 {
48 TutorialMediaPlayer->Close();
49 }
50
52 {
53 BTN_CloseButton->OnClicked.RemoveAll(this);
54 }
55
57 Super::NativeDestruct();
58}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnActivated()

void UTutorialPopupWidget::OnActivated ( )
overridevirtual

UUserWidgetBase(으)로부터 재구현되었습니다.

69{
70 Super::OnActivated();
71}

◆ OnCloseButtonClicked()

void UTutorialPopupWidget::OnCloseButtonClicked ( )
protected
330{
332 {
333 TutorialMediaPlayer->Close();
334 }
335
337
339 {
340 UISubsystem->PopWidget(this);
341 }
342 else
343 {
344 LOG_WARNING(LogCK, "%s을 찾지 못해 직접 RemoveFromParent 합니다.", NAMEOF(UUIManagementSubsystem));
345 RemoveFromParent();
346 }
347}
static UUIManagementSubsystem * GetUIManagementSubsystem(const UObject *WorldContextObject)
Definition CK_BPFunctionLibrary.cpp:138
Definition UIManagementSubsystem.h:22
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnDeactivated()

void UTutorialPopupWidget::OnDeactivated ( )
overridevirtual

UUserWidgetBase(으)로부터 재구현되었습니다.

75{
77 {
78 TutorialMediaPlayer->Close();
79 }
80
82 Super::OnDeactivated();
83}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnPushedToLayer()

void UTutorialPopupWidget::OnPushedToLayer ( )
overridevirtual

UUserWidgetBase(으)로부터 재구현되었습니다.

62{
63 Super::OnPushedToLayer();
65}
TArray< FDT_TutorialTable > BuildTutorialRows() const
Definition TutorialPopupWidget.cpp:278
void CreateTutorialContents(const TArray< FDT_TutorialTable > &Table)
Definition TutorialPopupWidget.cpp:86
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnTutorialContentClicked()

void UTutorialPopupWidget::OnTutorialContentClicked ( UTutorialContentWidget ContentWidget)
protected
324{
325 DisplayTutorialContent(ContentWidget);
326}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RemoveTutorialContent()

void UTutorialPopupWidget::RemoveTutorialContent ( UTutorialContentWidget ContentWidget)
protected
141{
142 if (ContentWidget == nullptr)
143 {
144 return;
145 }
146
147 ContentWidget->OnTutorialContentClicked.RemoveAll(this);
148 TutorialContentWidgets.Remove(ContentWidget);
149
151 {
152 ContentWidget->RemoveFromParent();
153 }
154}

멤버 데이터 문서화

◆ BTN_CloseButton

TObjectPtr<UButton> UTutorialPopupWidget::BTN_CloseButton
protected

◆ IMG_TutorialVideo

TObjectPtr<UImage> UTutorialPopupWidget::IMG_TutorialVideo
protected

◆ SB_TutorialContentList

TObjectPtr<UScrollBox> UTutorialPopupWidget::SB_TutorialContentList
protected

◆ TutorialContentWidgetClass

TSubclassOf<UTutorialContentWidget> UTutorialPopupWidget::TutorialContentWidgetClass
protected

◆ TutorialContentWidgets

TArray<TObjectPtr<UTutorialContentWidget> > UTutorialPopupWidget::TutorialContentWidgets
private

◆ TutorialMediaPlayer

TObjectPtr<UMediaPlayer> UTutorialPopupWidget::TutorialMediaPlayer
protected

◆ TutorialVideoMaterial

TObjectPtr<UMaterialInterface> UTutorialPopupWidget::TutorialVideoMaterial
protected

◆ TXT_Description

TObjectPtr<UTextBlock> UTutorialPopupWidget::TXT_Description
protected

◆ TXT_DescriptionBoxTitle

TObjectPtr<UTextBlock> UTutorialPopupWidget::TXT_DescriptionBoxTitle
protected

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