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

팝업 관리자 더 자세히 ...

#include <UPopupManager.h>

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

Public 멤버 함수

 UPopupManager ()
 
 DEFINE_LOCALPLAYER_SUBSYSTEM_GETTER_INLINE (UPopupManager)
 
bool GetCurrentPopupType (EPopupType &OutType) const
 현재 활성화된 팝업 타입 가져오기 (스택 최상단)
 
UUserWidget * GetCurrentPopupWidget () const
 현재 활성화된 팝업 위젯 가져오기 (스택 최상단)
 
int32 GetPopupStackCount () const
 활성화된 팝업 개수 가져오기
 
UUserWidget * GetPopupWidget (EPopupType Type) const
 특정 타입의 팝업 위젯 가져오기
 
void HideAllPopups (bool bDestroyWidgets=false)
 모든 팝업 숨기기
 
void HideCurrentPopup (bool bDestroyWidget=false)
 현재 활성화된 팝업 숨기기 (스택 최상단)
 
void HidePopup (EPopupType Type, bool bDestroyWidget=false)
 특정 팝업 숨기기
 
bool IsPopupInStack (EPopupType Type) const
 특정 타입의 팝업이 현재 스택에 있는지 확인
 
bool ShouldBlockPlayerControl () const
 현재 팝업이 플레이어 조작을 차단해야 하는지 확인
 
void ShowMsgBox (const FString &InTitle, const FString &InDescription, EMsgBoxType InType, const FOnMsgBoxOkDelegate &InOkDelegate)
 메시지 박스 표시 (OK 버튼만)
 
void ShowMsgBox (const FString &InTitle, const FString &InDescription, EMsgBoxType InType, const FOnMsgBoxOkDelegate &InOkDelegate, const FOnMsgBoxCancelDelegate &InCancelDelegate)
 메시지 박스 표시 (OK, Cancel 버튼)
 
void ShowMsgBoxSimple (const FString &InTitle, const FString &InDescription, EMsgBoxType InType)
 메시지 박스 표시 (블루프린트용 - 델리게이트 없음)
 
UUserWidget * ShowPopup (EPopupType Type)
 팝업 표시
 
template<typename T >
T * ShowPopupAs (EPopupType Type)
 타입 캐스팅된 팝업 표시 (템플릿)
 

정적 Public 멤버 함수

template<typename T >
static T * ShowPopupAs (UWorld *World, EPopupType Type)
 타입 캐스팅된 팝업 표시 (Static 헬퍼)
 

Public 속성

TMap< EPopupType, TSubclassOf< UUserWidget > > PopupClassMap
 팝업 타입별 위젯 클래스 맵 (에디터에서 설정)
 

Protected 멤버 함수

UUserWidget * EnsurePopupWidget (EPopupType Type)
 팝업 위젯 생성 또는 가져오기
 
void PushPopupToStack (EPopupType Type)
 팝업을 스택에 추가
 
void RemovePopupFromStack (EPopupType Type)
 팝업을 스택에서 제거
 

Private 속성

TArray< EPopupTypePopupStack
 팝업 스택 (표시 순서, 마지막이 최상단)
 
TMap< EPopupType, UUserWidget * > PopupWidgetMap
 팝업 타입별 위젯 인스턴스 맵
 

상세한 설명

팝업 관리자

게임 내 모든 팝업을 관리하는 LocalPlayerSubsystem입니다.

  • 팝업 스택 관리 (팝업 위에 팝업 표시 가능)
  • 타입별 팝업 인스턴스 관리
  • 팝업 생성, 표시, 숨김, 쿼리 기능 제공

사용 예시:

UPopupManager* PopupMgr = UPopupManager::Get(GetWorld());
PopupMgr->ShowPopup(EPopupType::MsgBox);
PopupMgr->HideCurrentPopup();
팝업 관리자
UUserWidget * ShowPopup(EPopupType Type)
팝업 표시
void HideCurrentPopup(bool bDestroyWidget=false)
현재 활성화된 팝업 숨기기 (스택 최상단)

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

생성자 & 소멸자 문서화

◆ UPopupManager()

UPopupManager::UPopupManager ( )

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

56{
57 // 기본 팝업 클래스 등록
80
81
82}
#define HOWTOPLAY_POPUP_PATH
#define HISTORY_POPUP_PATH
#define ASKTUTORIAL_POPUP_PATH
#define INPUT_POPUP_PATH
#define QuestionnaireResult_POPUP_PATH
#define LEVELSELECT_POPUP_PATH
#define SPEAKJUDES_POPUP_PATH
#define Questionnaire_POPUP_PATH
#define RESULT_POPUP_PATH
#define DAILYRESULT_POPUP_PATH
#define DAILYSTUDY_POPUP_PATH
#define EVALUATION_POPUP_PATH
#define INTERVIEWHELLO_POPUP_PATH
#define SPEAKQUESTJUDES_POPUP_PATH
#define WORD_POPUP_PATH
#define POPUP_PATH
#define WriteBoard_POPUP_PATH
#define READQUEST_POPUP_PATH
#define SPEAKQUEST_POPUP_PATH
#define INTERVIEW_POPUP_PATH
#define SPEAKRESULT_POPUP_PATH
TMap< EPopupType, TSubclassOf< UUserWidget > > PopupClassMap
팝업 타입별 위젯 클래스 맵 (에디터에서 설정)
static T * LoadAsset(const TCHAR *Path)

다음을 참조함 : ASKTUTORIAL_POPUP_PATH, DAILYRESULT_POPUP_PATH, DAILYSTUDY_POPUP_PATH, EVALUATION_POPUP_PATH, HISTORY_POPUP_PATH, HOWTOPLAY_POPUP_PATH, INPUT_POPUP_PATH, INTERVIEW_POPUP_PATH, INTERVIEWHELLO_POPUP_PATH, LEVELSELECT_POPUP_PATH, FComponentHelper::LoadAsset(), POPUP_PATH, PopupClassMap, Questionnaire_POPUP_PATH, QuestionnaireResult_POPUP_PATH, READQUEST_POPUP_PATH, RESULT_POPUP_PATH, SPEAKJUDES_POPUP_PATH, SPEAKQUEST_POPUP_PATH, SPEAKQUESTJUDES_POPUP_PATH, SPEAKRESULT_POPUP_PATH, WORD_POPUP_PATH, WriteBoard_POPUP_PATH.

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

멤버 함수 문서화

◆ DEFINE_LOCALPLAYER_SUBSYSTEM_GETTER_INLINE()

UPopupManager::DEFINE_LOCALPLAYER_SUBSYSTEM_GETTER_INLINE ( UPopupManager  )

◆ EnsurePopupWidget()

UUserWidget * UPopupManager::EnsurePopupWidget ( EPopupType  Type)
protected

팝업 위젯 생성 또는 가져오기

매개변수
Type팝업 타입
반환값
팝업 위젯 (실패 시 nullptr)

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

313{
314 UWorld* World = GetWorld();
315 if (!World || !World->IsGameWorld())
316 return nullptr;
317
318 // 이미 생성된 위젯이 있는지 확인
319 UUserWidget** ExistingWidgetPtr = PopupWidgetMap.Find(Type);
320 if (ExistingWidgetPtr && IsValid(*ExistingWidgetPtr))
321 {
322 UUserWidget* ExistingWidget = *ExistingWidgetPtr;
323 // 같은 월드인지 확인
324 if (ExistingWidget->GetWorld() == World)
325 {
326 return ExistingWidget;
327 }
328 else
329 {
330 // 다른 월드면 제거
331 if (ExistingWidget->IsInViewport())
332 ExistingWidget->RemoveFromParent();
333 PopupWidgetMap.Remove(Type);
334 }
335 }
336
337 // 팝업 클래스 가져오기
338 TSubclassOf<UUserWidget>* PopupClassPtr = PopupClassMap.Find(Type);
339 if (!PopupClassPtr || !(*PopupClassPtr))
340 {
341 PRINTLOG(TEXT("[UPopupManager] No popup class registered for type: %s"),
342 *ENUM_TO_NAME(EPopupType, Type));
343 return nullptr;
344 }
345
346 // 플레이어 컨트롤러 가져오기
347 ULocalPlayer* LocalPlayer = GetLocalPlayer();
348 if (!LocalPlayer)
349 return nullptr;
350
351 APlayerController* PC = LocalPlayer->GetPlayerController(World);
352 if (!PC)
353 return nullptr;
354
355 // 위젯 생성
356 // UUserWidget* NewWidget = CreateWidget<UUserWidget>(PC, *PopupClassPtr);
357
358 // 위젯 생성 - GetTransientPackage()를 outer로 사용하여 GameInstance outer 문제 방지
359 // CreateWidget은 내부적으로 GameInstance를 outer로 사용하므로 직접 NewObject 사용
360 UUserWidget* NewWidget = NewObject<UUserWidget>(GetTransientPackage(), *PopupClassPtr, NAME_None, RF_Transient);
361 if (NewWidget)
362 {
363 // 위젯 초기화
364 NewWidget->Initialize();
365
366 // PlayerController를 Owning Player로 설정
367 NewWidget->SetOwningPlayer(PC);
368 }
369 else
370 {
371 PRINTLOG(TEXT("[UPopupManager] Failed to create widget for type: %s"), *ENUM_TO_NAME(EPopupType, Type));
372 return nullptr;
373 }
374
375 // 맵에 추가
376 PopupWidgetMap.Add(Type, NewWidget);
377
378 return NewWidget;
379}
EPopupType
팝업 타입 정의
Definition EPopupType.h:14
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30
#define ENUM_TO_NAME(EnumType, Value)
Definition Macro.h:83
TMap< EPopupType, UUserWidget * > PopupWidgetMap
팝업 타입별 위젯 인스턴스 맵

다음을 참조함 : ENUM_TO_NAME, PopupClassMap, PopupWidgetMap, PRINTLOG.

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

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

◆ GetCurrentPopupType()

bool UPopupManager::GetCurrentPopupType ( EPopupType OutType) const

현재 활성화된 팝업 타입 가져오기 (스택 최상단)

매개변수
OutType현재 팝업 타입 (출력)
반환값
활성화된 팝업이 있으면 true

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

190{
191 if (PopupStack.Num() == 0)
192 return false;
193
194 OutType = PopupStack.Last();
195 return true;
196}
TArray< EPopupType > PopupStack
팝업 스택 (표시 순서, 마지막이 최상단)

다음을 참조함 : PopupStack.

◆ GetCurrentPopupWidget()

UUserWidget * UPopupManager::GetCurrentPopupWidget ( ) const

현재 활성화된 팝업 위젯 가져오기 (스택 최상단)

반환값
현재 팝업 위젯 (없으면 nullptr)

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

199{
200 if (PopupStack.Num() == 0)
201 return nullptr;
202
203 EPopupType CurrentType = PopupStack.Last();
204 return GetPopupWidget(CurrentType);
205}
UUserWidget * GetPopupWidget(EPopupType Type) const
특정 타입의 팝업 위젯 가져오기

다음을 참조함 : GetPopupWidget(), PopupStack.

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

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

◆ GetPopupStackCount()

int32 UPopupManager::GetPopupStackCount ( ) const

활성화된 팝업 개수 가져오기

반환값
팝업 스택 크기

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

226{
227 return PopupStack.Num();
228}

다음을 참조함 : PopupStack.

◆ GetPopupWidget()

UUserWidget * UPopupManager::GetPopupWidget ( EPopupType  Type) const

특정 타입의 팝업 위젯 가져오기

매개변수
Type팝업 타입
반환값
팝업 위젯 (없으면 nullptr)

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

208{
209 // 1. 해당 타입의 팝업이 맵에 있는지 확인
210 if (!PopupWidgetMap.Contains(Type))
211 return nullptr;
212
213 // 2. 맵에서 위젯 가져오기
214 UUserWidget* Widget = PopupWidgetMap[Type];
215
216 // 3. 위젯이 유효한지 확인 후 반환
217 return Widget;
218}

다음을 참조함 : PopupWidgetMap.

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

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

◆ HideAllPopups()

void UPopupManager::HideAllPopups ( bool  bDestroyWidgets = false)

모든 팝업 숨기기

매개변수
bDestroyWidgets위젯들을 완전히 제거할지 여부

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

177{
178 // 스택을 역순으로 순회하며 모두 닫기
179 while (PopupStack.Num() > 0)
180 {
181 HideCurrentPopup(bDestroyWidgets);
182 }
183}

다음을 참조함 : HideCurrentPopup(), PopupStack.

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

◆ HideCurrentPopup()

void UPopupManager::HideCurrentPopup ( bool  bDestroyWidget = false)

현재 활성화된 팝업 숨기기 (스택 최상단)

매개변수
bDestroyWidget위젯을 완전히 제거할지 여부

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

168{
169 if (PopupStack.Num() == 0)
170 return;
171
172 EPopupType CurrentType = PopupStack.Last();
173 HidePopup(CurrentType, bDestroyWidget);
174}
void HidePopup(EPopupType Type, bool bDestroyWidget=false)
특정 팝업 숨기기

다음을 참조함 : HidePopup(), PopupStack.

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

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

◆ HidePopup()

void UPopupManager::HidePopup ( EPopupType  Type,
bool  bDestroyWidget = false 
)

특정 팝업 숨기기

매개변수
Type숨길 팝업 타입
bDestroyWidget위젯을 완전히 제거할지 여부 (false면 뷰포트에서만 제거)

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

132{
133 UUserWidget** PopupWidgetPtr = PopupWidgetMap.Find(Type);
134 if (!PopupWidgetPtr || !(*PopupWidgetPtr))
135 return;
136
137 UUserWidget* PopupWidget = *PopupWidgetPtr;
138
139 // 뷰포트에서 제거
140 if (PopupWidget->IsInViewport())
141 {
142 PopupWidget->RemoveFromParent();
143 }
144
145 // 스택에서 제거
147
148 // 모든 팝업이 닫혔다면 마우스 커서 숨기기
149 if (PopupStack.Num() == 0)
150 {
151 FString MapName = GetWorld()->GetMapName();
152 MapName.RemoveFromStart(GetWorld()->StreamingLevelsPrefix);
153 if (MapName.Contains(TEXT("Map1")) ||
154 MapName.Contains(TEXT("Person")) )
155 {
157 }
158 }
159
160 // 위젯 파괴
161 if (bDestroyWidget)
162 {
163 PopupWidgetMap.Remove(Type);
164 }
165}
static void HideMouseCursor(const UObject *WorldContextObject)
마우스 커서를 숨기고 게임 전용 입력 모드로 설정합니다.
void RemovePopupFromStack(EPopupType Type)
팝업을 스택에서 제거

다음을 참조함 : ULingoGameHelper::HideMouseCursor(), PopupStack, PopupWidgetMap, RemovePopupFromStack().

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

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

◆ IsPopupInStack()

bool UPopupManager::IsPopupInStack ( EPopupType  Type) const

특정 타입의 팝업이 현재 스택에 있는지 확인

매개변수
Type팝업 타입
반환값
스택에 있으면 true

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

221{
222 return PopupStack.Contains(Type);
223}

다음을 참조함 : PopupStack.

◆ PushPopupToStack()

void UPopupManager::PushPopupToStack ( EPopupType  Type)
protected

팝업을 스택에 추가

매개변수
Type팝업 타입

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

382{
383 // 이미 스택에 있으면 제거 후 재추가 (최상단으로)
385 PopupStack.Add(Type);
386}

다음을 참조함 : PopupStack, RemovePopupFromStack().

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

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

◆ RemovePopupFromStack()

void UPopupManager::RemovePopupFromStack ( EPopupType  Type)
protected

팝업을 스택에서 제거

매개변수
Type팝업 타입

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

389{
390 PopupStack.Remove(Type);
391}

다음을 참조함 : PopupStack.

다음에 의해서 참조됨 : HidePopup(), PushPopupToStack(), ShowPopup().

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

◆ ShouldBlockPlayerControl()

bool UPopupManager::ShouldBlockPlayerControl ( ) const

현재 팝업이 플레이어 조작을 차단해야 하는지 확인

반환값
true면 플레이어 조작을 차단해야 함, false면 조작 허용

팝업이 없거나, 현재 팝업이 bAllowPlayerControl=true면 false 반환

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

231{
232 // 팝업이 없으면 조작 허용
233 if (PopupStack.Num() == 0)
234 return false;
235
236 // 현재 팝업 위젯 가져오기
237 UUserWidget* CurrentWidget = GetCurrentPopupWidget();
238 if (!CurrentWidget)
239 return false;
240
241 // UBasePopup으로 캐스팅하여 bAllowPlayerControl 확인
242 if (UBasePopup* BasePopup = Cast<UBasePopup>(CurrentWidget))
243 {
244 // bAllowPlayerControl이 true면 조작 허용 (차단하지 않음)
245 return !BasePopup->bAllowPlayerControl;
246 }
247
248 // UBasePopup이 아닌 팝업은 기본적으로 조작 차단
249 return true;
250}
모든 팝업의 기본 클래스
Definition UBasePopup.h:19
UUserWidget * GetCurrentPopupWidget() const
현재 활성화된 팝업 위젯 가져오기 (스택 최상단)

다음을 참조함 : GetCurrentPopupWidget(), PopupStack.

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

◆ ShowMsgBox() [1/2]

void UPopupManager::ShowMsgBox ( const FString &  InTitle,
const FString &  InDescription,
EMsgBoxType  InType,
const FOnMsgBoxOkDelegate &  InOkDelegate 
)

메시지 박스 표시 (OK 버튼만)

매개변수
InTitle제목
InDescription설명
InOkDelegateOK 버튼 클릭 델리게이트
주의
C++에서만 사용 가능 (델리게이트는 블루프린트에 노출 불가)

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

261{
262 UUserWidget* Widget = ShowPopup(EPopupType::MsgBox);
263 if (!Widget)
264 return;
265
266 if (auto MsgBox = Cast<UPopup_MsgBox>(Widget))
267 {
268 MsgBox->InitPopup(InTitle, InDescription, InType, InOkDelegate);
269 }
270}

다음을 참조함 : ShowPopup().

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

◆ ShowMsgBox() [2/2]

void UPopupManager::ShowMsgBox ( const FString &  InTitle,
const FString &  InDescription,
EMsgBoxType  InType,
const FOnMsgBoxOkDelegate &  InOkDelegate,
const FOnMsgBoxCancelDelegate &  InCancelDelegate 
)

메시지 박스 표시 (OK, Cancel 버튼)

매개변수
InTitle제목
InDescription설명
InOkDelegateOK 버튼 클릭 델리게이트
InCancelDelegateCancel 버튼 클릭 델리게이트
주의
C++에서만 사용 가능 (델리게이트는 블루프린트에 노출 불가)

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

278{
279 UUserWidget* Widget = ShowPopup(EPopupType::MsgBox);
280 if (!Widget)
281 return;
282
283 if (auto Popup = Cast<UPopup_MsgBox>(Widget))
284 {
285 Popup->InitPopup(InTitle, InDescription, InType, InOkDelegate, InCancelDelegate);
286 }
287}

다음을 참조함 : ShowPopup().

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

◆ ShowMsgBoxSimple()

void UPopupManager::ShowMsgBoxSimple ( const FString &  InTitle,
const FString &  InDescription,
EMsgBoxType  InType 
)

메시지 박스 표시 (블루프린트용 - 델리게이트 없음)

매개변수
InTitle제목
InDescription설명
InType메시지 박스 타입
주의
블루프린트에서 사용. 버튼 이벤트는 위젯 블루프린트에서 직접 처리

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

293{
294 // 델리게이트 없이 팝업만 표시 (블루프린트용)
295 UUserWidget* Widget = ShowPopup(EPopupType::MsgBox);
296 if (!Widget)
297 return;
298
299 if (auto MsgBox = Cast<UPopup_MsgBox>(Widget))
300 {
301 // 빈 델리게이트로 초기화
302 FOnMsgBoxOkDelegate EmptyOkDelegate;
303 FOnMsgBoxCancelDelegate EmptyCancelDelegate;
304 MsgBox->InitPopup(InTitle, InDescription, InType, EmptyOkDelegate, EmptyCancelDelegate);
305 }
306}

다음을 참조함 : ShowPopup().

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

◆ ShowPopup()

UUserWidget * UPopupManager::ShowPopup ( EPopupType  Type)

팝업 표시

매개변수
Type표시할 팝업 타입
반환값
생성/표시된 팝업 위젯 (실패 시 nullptr)

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

89{
90 UUserWidget* PopupWidget = EnsurePopupWidget(Type);
91 if (!PopupWidget)
92 {
93 PRINTLOG(TEXT("[UPopupManager] Failed to create popup: %s"), *ENUM_TO_NAME(EPopupType, Type));
94 return nullptr;
95 }
96
97 // 첫 팝업이 열릴 때 마우스 커서 표시
98 bool bIsFirstPopup = (PopupStack.Num() == 0);
99
100 // 이미 뷰포트에 있으면 스택 맨 위로 이동
101 if (PopupWidget->IsInViewport())
102 {
104 }
105 else
106 {
107 // UBasePopup으로 캐스팅하여 애니메이션 재생
108 if (UBasePopup* BasePopup = Cast<UBasePopup>(PopupWidget))
109 {
110 BasePopup->OpenAnimation();
111 }
112 else
113 {
114 // UBasePopup이 아닌 경우 기본 방식으로 추가
115 PopupWidget->AddToViewport(GameLayer::Popup);
116 }
117 }
118
119 // 스택에 추가
120 PushPopupToStack(Type);
121
122 // 첫 팝업이 열렸다면 마우스 커서 표시
123 if (bIsFirstPopup)
124 {
126 }
127
128 return PopupWidget;
129}
static void ShowMouseCursor(const UObject *WorldContextObject)
마우스 커서를 표시하고 게임+UI 입력 모드로 설정합니다.
void PushPopupToStack(EPopupType Type)
팝업을 스택에 추가
UUserWidget * EnsurePopupWidget(EPopupType Type)
팝업 위젯 생성 또는 가져오기
static const int32 Popup
Definition Onepiece.h:9

다음을 참조함 : EnsurePopupWidget(), ENUM_TO_NAME, GameLayer::Popup, PopupStack, PRINTLOG, PushPopupToStack(), RemovePopupFromStack(), ULingoGameHelper::ShowMouseCursor().

다음에 의해서 참조됨 : ShowMsgBox(), ShowMsgBox(), ShowMsgBoxSimple().

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

◆ ShowPopupAs() [1/2]

template<typename T >
T * UPopupManager::ShowPopupAs ( EPopupType  Type)
inline

타입 캐스팅된 팝업 표시 (템플릿)

템플릿 파라메터
T팝업 위젯 타입 (UUserWidget 파생 클래스)
매개변수
Type표시할 팝업 타입
반환값
캐스팅된 팝업 위젯 (실패 시 nullptr)

사용 예시:

if (auto Popup = PopupMgr->ShowPopupAs<UPopup_ReadQuest>(EPopupType::ReadQuest))
{
Popup->InitPopup(...);
}
Read 퀘스트 메인 위젯

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

90 {
91 return Cast<T>(ShowPopup(Type));
92 }

◆ ShowPopupAs() [2/2]

template<typename T >
static T * UPopupManager::ShowPopupAs ( UWorld *  World,
EPopupType  Type 
)
inlinestatic

타입 캐스팅된 팝업 표시 (Static 헬퍼)

템플릿 파라메터
T팝업 위젯 타입
매개변수
World월드 컨텍스트
Type표시할 팝업 타입
반환값
캐스팅된 팝업 위젯 (실패 시 nullptr)

사용 예시:

if (auto Popup = UPopupManager::ShowPopupAs<UPopup_ReadQuest>(GetWorld(), EPopupType::ReadQuest))
{
Popup->InitPopup(...);
}

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

111 {
112 if (UPopupManager* Mgr = Get(World))
113 {
114 return Mgr->ShowPopupAs<T>(Type);
115 }
116 return nullptr;
117 }
@ Get
HTTP GET 요청을 나타냅니다.

다음을 참조함 : Get.

멤버 데이터 문서화

◆ PopupClassMap

TMap<EPopupType, TSubclassOf<UUserWidget> > UPopupManager::PopupClassMap

팝업 타입별 위젯 클래스 맵 (에디터에서 설정)

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

다음에 의해서 참조됨 : UPopupManager(), EnsurePopupWidget().

◆ PopupStack

TArray<EPopupType> UPopupManager::PopupStack
private

팝업 스택 (표시 순서, 마지막이 최상단)

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

다음에 의해서 참조됨 : GetCurrentPopupType(), GetCurrentPopupWidget(), GetPopupStackCount(), HideAllPopups(), HideCurrentPopup(), HidePopup(), IsPopupInStack(), PushPopupToStack(), RemovePopupFromStack(), ShouldBlockPlayerControl(), ShowPopup().

◆ PopupWidgetMap

TMap<EPopupType, UUserWidget*> UPopupManager::PopupWidgetMap
private

팝업 타입별 위젯 인스턴스 맵

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

다음에 의해서 참조됨 : EnsurePopupWidget(), GetPopupWidget(), HidePopup().


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