KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UToastWidget 클래스 참조

#include <UToastWidget.h>

+ UToastWidget에 대한 상속 다이어그램 :
+ UToastWidget에 대한 협력 다이어그램:

Public 멤버 함수

void AddItemToBoxItem (const FResultStatData &InData)
 
void AddItemToBoxList (const TArray< FResultStatData > &InDataList)
 
void OnHideTutorialMessage ()
 
void OnShowTutorialMessage (const FText &NewMessage)
 
void OnTutorMessage (const FText &NewMessage)
 튜터 메시지를 설정하고 애니메이션을 재생합니다.
 

Protected 멤버 함수

virtual void NativeConstruct () override
 위젯 초기화
 

Protected 속성

TObjectPtr< class UHorizontalBox > ItemHorizontalBox
 아이템 표시용 HorizontalBox
 
TObjectPtr< class UWidgetAnimation > TutorHideAnim
 TutorMessage Hide Animation (MainWidget에서 제어)
 
TObjectPtr< class UTutorMessageTutorMessage
 튜터 메시지 위젯 (옵션, BindWidgetOptional)
 
TObjectPtr< class UWidgetAnimation > TutorShowAnim
 TutorMessage Show Animation (MainWidget에서 제어)
 

Private 멤버 함수

void InitTutorMessage ()
 
void OnTutorHideComplete ()
 TutorHideAnim 완료 시 호출되는 콜백
 
void ProcessNextItem ()
 다음 아이템을 HorizontalBox에 추가 (타이머 콜백)
 
void StartTutorHideTimer ()
 자동 Hide 타이머 시작
 

Private 속성

bool bHasPendingMessage = false
 펜딩 메시지 존재 여부
 
bool bIsTutorVisible = false
 튜터 메시지 표시 여부
 
bool bPendingIsTutorial = false
 펜딩 메시지가 튜토리얼 메시지인지 여부
 
int32 CurItemIndex = 0
 현재 추가 중인 아이템 인덱스
 
float ItemAddInterval = 0.1f
 아이템 추가 간격 (초)
 
FTimerHandle ItemAddTimerHandle
 아이템 순차 추가 타이머 핸들
 
TSubclassOf< class UAutoDespawnItemItemWidgetClass
 아이템 위젯 클래스
 
TArray< FResultStatDataPendingItemDataList
 순차 추가 대기 중인 아이템 데이터 리스트
 
FText PendingMessage
 펜딩 중인 메시지 (Hide 완료 후 표시할 메시지)
 
FTimerHandle TutorHideTimerHandle
 자동 Hide 타이머 핸들
 
float TutorMessageDisplayDuration = 3.0f
 튜터 메시지 표시 지속 시간 (초)
 

상세한 설명

UToastWidget.h 파일의 13 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ AddItemToBoxItem()

void UToastWidget::AddItemToBoxItem ( const FResultStatData InData)

UToastWidget.cpp 파일의 199 번째 라인에서 정의되었습니다.

200{
202 return;
203
204 // 새 아이템 생성
205 if (auto SpawnItem = CreateWidget<UAutoDespawnItem>(GetWorld(), ItemWidgetClass))
206 {
207 ItemHorizontalBox->AddChild(SpawnItem);
208
209 SpawnItem->InitData(InData);
210 }
211}
TObjectPtr< class UHorizontalBox > ItemHorizontalBox
아이템 표시용 HorizontalBox
TSubclassOf< class UAutoDespawnItem > ItemWidgetClass
아이템 위젯 클래스

다음을 참조함 : ItemHorizontalBox, ItemWidgetClass.

다음에 의해서 참조됨 : ProcessNextItem().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ AddItemToBoxList()

void UToastWidget::AddItemToBoxList ( const TArray< FResultStatData > &  InDataList)

UToastWidget.cpp 파일의 179 번째 라인에서 정의되었습니다.

180{
181 if (InDataList.Num() == 0)
182 return;
183
184 // 기존 타이머가 있으면 클리어
185 if (ItemAddTimerHandle.IsValid())
186 {
187 GetWorld()->GetTimerManager().ClearTimer(ItemAddTimerHandle);
188 }
189
190 // 대기 리스트에 데이터 복사 및 인덱스 초기화
191 PendingItemDataList = InDataList;
192 CurItemIndex = 0;
193
194 // 첫 번째 아이템은 즉시 추가
196}
void ProcessNextItem()
다음 아이템을 HorizontalBox에 추가 (타이머 콜백)
int32 CurItemIndex
현재 추가 중인 아이템 인덱스
FTimerHandle ItemAddTimerHandle
아이템 순차 추가 타이머 핸들
TArray< FResultStatData > PendingItemDataList
순차 추가 대기 중인 아이템 데이터 리스트

다음을 참조함 : CurItemIndex, ItemAddTimerHandle, PendingItemDataList, ProcessNextItem().

다음에 의해서 참조됨 : NativeConstruct().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ InitTutorMessage()

void UToastWidget::InitTutorMessage ( )
private

UToastWidget.cpp 파일의 27 번째 라인에서 정의되었습니다.

28{
29 if (TutorMessage)
30 {
31 TutorMessage->SetVisibility(ESlateVisibility::HitTestInvisible);
32
33 FWidgetAnimationDynamicEvent HideDelegate;
34 HideDelegate.BindDynamic(this, &UToastWidget::OnTutorHideComplete);
35 BindToAnimationFinished(TutorHideAnim, HideDelegate);
36
37 PlayAnimation(TutorHideAnim);
38
39 bIsTutorVisible = false;
40 }
41}
TObjectPtr< class UTutorMessage > TutorMessage
튜터 메시지 위젯 (옵션, BindWidgetOptional)
TObjectPtr< class UWidgetAnimation > TutorHideAnim
TutorMessage Hide Animation (MainWidget에서 제어)
bool bIsTutorVisible
튜터 메시지 표시 여부
void OnTutorHideComplete()
TutorHideAnim 완료 시 호출되는 콜백

다음을 참조함 : bIsTutorVisible, OnTutorHideComplete(), TutorHideAnim, TutorMessage.

다음에 의해서 참조됨 : NativeConstruct().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NativeConstruct()

void UToastWidget::NativeConstruct ( )
overrideprotectedvirtual

위젯 초기화

UToastWidget.cpp 파일의 11 번째 라인에서 정의되었습니다.

12{
13 if (auto BM = UBroadcastManager::Get(GetWorld()))
14 {
15 BM->OnTutorMessage.AddDynamic(this, &UToastWidget::OnTutorMessage);
16 BM->OnAddItemToBoxList.AddDynamic(this, &UToastWidget::AddItemToBoxList);
17
18 BM->OnShowTutorialMessage.AddDynamic(this, &UToastWidget::OnShowTutorialMessage);
19 BM->OnHideTutorialMessage.AddDynamic(this, &UToastWidget::OnHideTutorialMessage);
20 }
21
22 // TutorMessage 초기화 및 애니메이션 콜백 바인딩
24}
void OnShowTutorialMessage(const FText &NewMessage)
void AddItemToBoxList(const TArray< FResultStatData > &InDataList)
void InitTutorMessage()
void OnHideTutorialMessage()
void OnTutorMessage(const FText &NewMessage)
튜터 메시지를 설정하고 애니메이션을 재생합니다.

다음을 참조함 : AddItemToBoxList(), InitTutorMessage(), OnHideTutorialMessage(), OnShowTutorialMessage(), OnTutorMessage().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnHideTutorialMessage()

void UToastWidget::OnHideTutorialMessage ( )

UToastWidget.cpp 파일의 113 번째 라인에서 정의되었습니다.

114{
115 if (!TutorMessage || !bIsTutorVisible) return;
116
117 // 기존 타이머가 있으면 클리어
118 if (TutorHideTimerHandle.IsValid())
119 {
120 GetWorld()->GetTimerManager().ClearTimer(TutorHideTimerHandle);
121 }
122
123 // Hide 애니메이션 재생
124 if (TutorHideAnim)
125 {
126 PlayAnimation(TutorHideAnim);
127 }
128}
FTimerHandle TutorHideTimerHandle
자동 Hide 타이머 핸들

다음을 참조함 : bIsTutorVisible, TutorHideAnim, TutorHideTimerHandle, TutorMessage.

다음에 의해서 참조됨 : NativeConstruct().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnShowTutorialMessage()

void UToastWidget::OnShowTutorialMessage ( const FText &  NewMessage)

UToastWidget.cpp 파일의 80 번째 라인에서 정의되었습니다.

81{
82 if (!TutorMessage)
83 return;
84
85 // 기존 타이머가 있으면 클리어
86 if (TutorHideTimerHandle.IsValid())
87 {
88 GetWorld()->GetTimerManager().ClearTimer(TutorHideTimerHandle);
89 }
90
92 {
93 // 표시 중이면 Hide → SetText → Show
94 PendingMessage = NewMessage;
95 bHasPendingMessage = true;
96 bPendingIsTutorial = true;
97
98 PlayAnimation(TutorHideAnim);
99 }
100 else
101 {
102 // 숨김 상태면 바로 SetText → Show
103 TutorMessage->SetMessageText(NewMessage);
104
105 if (TutorShowAnim)
106 {
107 PlayAnimation(TutorShowAnim);
108 bIsTutorVisible = true;
109 }
110 }
111}
bool bPendingIsTutorial
펜딩 메시지가 튜토리얼 메시지인지 여부
bool bHasPendingMessage
펜딩 메시지 존재 여부
TObjectPtr< class UWidgetAnimation > TutorShowAnim
TutorMessage Show Animation (MainWidget에서 제어)
FText PendingMessage
펜딩 중인 메시지 (Hide 완료 후 표시할 메시지)

다음을 참조함 : bHasPendingMessage, bIsTutorVisible, bPendingIsTutorial, PendingMessage, TutorHideAnim, TutorHideTimerHandle, TutorMessage, TutorShowAnim.

다음에 의해서 참조됨 : NativeConstruct().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnTutorHideComplete()

void UToastWidget::OnTutorHideComplete ( )
private

TutorHideAnim 완료 시 호출되는 콜백

UToastWidget.cpp 파일의 130 번째 라인에서 정의되었습니다.

131{
132 bIsTutorVisible = false;
133
135 {
136 bHasPendingMessage = false;
137 TutorMessage->SetMessageText(PendingMessage);
138
139 if (TutorShowAnim)
140 {
141 PlayAnimation(TutorShowAnim);
142 bIsTutorVisible = true;
143
144 // 튜토리얼 메시지가 아닐 때만 타이머 시작!
145 if (!bPendingIsTutorial) // ← 이 줄 추가!
146 {
148 }
149 }
150
151 // 플래그 초기화
152 bPendingIsTutorial = false;
153 }
154}
void StartTutorHideTimer()
자동 Hide 타이머 시작

다음을 참조함 : bHasPendingMessage, bIsTutorVisible, bPendingIsTutorial, PendingMessage, StartTutorHideTimer(), TutorMessage, TutorShowAnim.

다음에 의해서 참조됨 : InitTutorMessage().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnTutorMessage()

void UToastWidget::OnTutorMessage ( const FText &  NewMessage)

튜터 메시지를 설정하고 애니메이션을 재생합니다.

매개변수
NewMessage표시할 메시지

UToastWidget.cpp 파일의 44 번째 라인에서 정의되었습니다.

45{
46 if (!TutorMessage)
47 return;
48
49 // 기존 타이머가 있으면 클리어
50 if (TutorHideTimerHandle.IsValid())
51 {
52 GetWorld()->GetTimerManager().ClearTimer(TutorHideTimerHandle);
53 }
54
56 {
57 // 표시 중이면 Hide → SetText → Show
58 PendingMessage = NewMessage;
59 bHasPendingMessage = true;
60 bPendingIsTutorial = false;
61
62 PlayAnimation(TutorHideAnim);
63 }
64 else
65 {
66 // 숨김 상태면 바로 SetText → Show
67 TutorMessage->SetMessageText(NewMessage);
68
69 if (TutorShowAnim)
70 {
71 PlayAnimation(TutorShowAnim);
72 bIsTutorVisible = true;
73
74 // 자동 Hide 타이머 시작
76 }
77 }
78}

다음을 참조함 : bHasPendingMessage, bIsTutorVisible, bPendingIsTutorial, PendingMessage, StartTutorHideTimer(), TutorHideAnim, TutorHideTimerHandle, TutorMessage, TutorShowAnim.

다음에 의해서 참조됨 : NativeConstruct().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ProcessNextItem()

void UToastWidget::ProcessNextItem ( )
private

다음 아이템을 HorizontalBox에 추가 (타이머 콜백)

UToastWidget.cpp 파일의 213 번째 라인에서 정의되었습니다.

214{
216 {
217 // 모든 아이템 추가 완료
218 PendingItemDataList.Empty();
219 CurItemIndex = 0;
220 return;
221 }
222
223 // 현재 인덱스의 아이템 추가
225 CurItemIndex++;
226
227 // 다음 아이템이 있으면 타이머 설정
229 {
230 GetWorld()->GetTimerManager().SetTimer(
232 this,
235 false
236 );
237 }
238 else
239 {
240 // 모든 아이템 추가 완료
241 PendingItemDataList.Empty();
242 CurItemIndex = 0;
243 }
244}
void AddItemToBoxItem(const FResultStatData &InData)
float ItemAddInterval
아이템 추가 간격 (초)

다음을 참조함 : AddItemToBoxItem(), CurItemIndex, ItemAddInterval, ItemAddTimerHandle, PendingItemDataList, ProcessNextItem().

다음에 의해서 참조됨 : AddItemToBoxList(), ProcessNextItem().

+ 이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StartTutorHideTimer()

void UToastWidget::StartTutorHideTimer ( )
private

자동 Hide 타이머 시작

UToastWidget.cpp 파일의 156 번째 라인에서 정의되었습니다.

157{
158 // 기존 타이머 클리어 (안전성을 위해)
159 if (TutorHideTimerHandle.IsValid())
160 {
161 GetWorld()->GetTimerManager().ClearTimer(TutorHideTimerHandle);
162 }
163
164 // 지정된 시간 후 자동으로 Hide 애니메이션 재생
165 GetWorld()->GetTimerManager().SetTimer(
167 [this]()
168 {
169 if (bIsTutorVisible)
170 {
171 PlayAnimation(TutorHideAnim);
172 }
173 },
175 false
176 );
177}
float TutorMessageDisplayDuration
튜터 메시지 표시 지속 시간 (초)

다음을 참조함 : bIsTutorVisible, TutorHideAnim, TutorHideTimerHandle, TutorMessageDisplayDuration.

다음에 의해서 참조됨 : OnTutorHideComplete(), OnTutorMessage().

+ 이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ bHasPendingMessage

bool UToastWidget::bHasPendingMessage = false
private

펜딩 메시지 존재 여부

UToastWidget.h 파일의 92 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnShowTutorialMessage(), OnTutorHideComplete(), OnTutorMessage().

◆ bIsTutorVisible

bool UToastWidget::bIsTutorVisible = false
private

튜터 메시지 표시 여부

UToastWidget.h 파일의 95 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : InitTutorMessage(), OnHideTutorialMessage(), OnShowTutorialMessage(), OnTutorHideComplete(), OnTutorMessage(), StartTutorHideTimer().

◆ bPendingIsTutorial

bool UToastWidget::bPendingIsTutorial = false
private

펜딩 메시지가 튜토리얼 메시지인지 여부

UToastWidget.h 파일의 85 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnShowTutorialMessage(), OnTutorHideComplete(), OnTutorMessage().

◆ CurItemIndex

int32 UToastWidget::CurItemIndex = 0
private

현재 추가 중인 아이템 인덱스

UToastWidget.h 파일의 104 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AddItemToBoxList(), ProcessNextItem().

◆ ItemAddInterval

float UToastWidget::ItemAddInterval = 0.1f
private

아이템 추가 간격 (초)

UToastWidget.h 파일의 108 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ProcessNextItem().

◆ ItemAddTimerHandle

FTimerHandle UToastWidget::ItemAddTimerHandle
private

아이템 순차 추가 타이머 핸들

UToastWidget.h 파일의 98 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AddItemToBoxList(), ProcessNextItem().

◆ ItemHorizontalBox

TObjectPtr<class UHorizontalBox> UToastWidget::ItemHorizontalBox
protected

아이템 표시용 HorizontalBox

UToastWidget.h 파일의 62 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AddItemToBoxItem().

◆ ItemWidgetClass

TSubclassOf<class UAutoDespawnItem> UToastWidget::ItemWidgetClass
private

아이템 위젯 클래스

UToastWidget.h 파일의 75 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AddItemToBoxItem().

◆ PendingItemDataList

TArray<FResultStatData> UToastWidget::PendingItemDataList
private

순차 추가 대기 중인 아이템 데이터 리스트

UToastWidget.h 파일의 101 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AddItemToBoxList(), ProcessNextItem().

◆ PendingMessage

FText UToastWidget::PendingMessage
private

펜딩 중인 메시지 (Hide 완료 후 표시할 메시지)

UToastWidget.h 파일의 82 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnShowTutorialMessage(), OnTutorHideComplete(), OnTutorMessage().

◆ TutorHideAnim

TObjectPtr<class UWidgetAnimation> UToastWidget::TutorHideAnim
protected

TutorMessage Hide Animation (MainWidget에서 제어)

UToastWidget.h 파일의 70 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : InitTutorMessage(), OnHideTutorialMessage(), OnShowTutorialMessage(), OnTutorMessage(), StartTutorHideTimer().

◆ TutorHideTimerHandle

FTimerHandle UToastWidget::TutorHideTimerHandle
private

자동 Hide 타이머 핸들

UToastWidget.h 파일의 79 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnHideTutorialMessage(), OnShowTutorialMessage(), OnTutorMessage(), StartTutorHideTimer().

◆ TutorMessage

TObjectPtr<class UTutorMessage> UToastWidget::TutorMessage
protected

튜터 메시지 위젯 (옵션, BindWidgetOptional)

UToastWidget.h 파일의 58 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : InitTutorMessage(), OnHideTutorialMessage(), OnShowTutorialMessage(), OnTutorHideComplete(), OnTutorMessage().

◆ TutorMessageDisplayDuration

float UToastWidget::TutorMessageDisplayDuration = 3.0f
private

튜터 메시지 표시 지속 시간 (초)

UToastWidget.h 파일의 89 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : StartTutorHideTimer().

◆ TutorShowAnim

TObjectPtr<class UWidgetAnimation> UToastWidget::TutorShowAnim
protected

TutorMessage Show Animation (MainWidget에서 제어)

UToastWidget.h 파일의 66 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OnShowTutorialMessage(), OnTutorHideComplete(), OnTutorMessage().


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