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

전역 로딩 서클의 표시 여부를 관리하는 LocalPlayerSubsystem입니다. 더 자세히 ...

#include <ULoadingCircleManager.h>

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

Public 멤버 함수

 ULoadingCircleManager ()
 
 DEFINE_LOCALPLAYER_SUBSYSTEM_GETTER_INLINE (ULoadingCircleManager)
 
int32 GetLoadingCount () const
 현재 로딩 카운트를 반환합니다.
 
void Hide ()
 로딩 카운트를 감소시킵니다.
 
void LoadingCircle (bool bShow)
 로딩 서클을 표시하거나 숨깁니다.
 
void Show ()
 로딩 카운트를 증가시킵니다.
 

Protected 멤버 함수

void EnsureWidgetForWorld (UWorld *World)
 현재 월드에 위젯이 없으면 생성하고 Game Viewport에 부착합니다.
 

Protected 속성

TObjectPtr< class ULoadginCircleCircleWidget
 
TSubclassOf< class ULoadginCircleCircleWidgetClass
 
int32 LoadingCount = 0
 Manager가 관리하는 로딩 카운트 (위젯 재생성 시에도 유지됨)
 

상세한 설명

전역 로딩 서클의 표시 여부를 관리하는 LocalPlayerSubsystem입니다.

여러 시스템에서 동시에 로딩을 요청할 경우를 대비해 로딩 요청 카운트를 관리하며, 카운트가 1 이상일 때 로딩 서클을 표시합니다.

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

생성자 & 소멸자 문서화

◆ ULoadingCircleManager()

ULoadingCircleManager::ULoadingCircleManager ( )

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

26{
28}
#define LOADINGCIRCLEWIDGET_PATH
TSubclassOf< class ULoadginCircle > CircleWidgetClass
static T * LoadAsset(const TCHAR *Path)

다음을 참조함 : CircleWidgetClass, FComponentHelper::LoadAsset(), LOADINGCIRCLEWIDGET_PATH.

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

멤버 함수 문서화

◆ DEFINE_LOCALPLAYER_SUBSYSTEM_GETTER_INLINE()

ULoadingCircleManager::DEFINE_LOCALPLAYER_SUBSYSTEM_GETTER_INLINE ( ULoadingCircleManager  )

◆ EnsureWidgetForWorld()

void ULoadingCircleManager::EnsureWidgetForWorld ( UWorld *  World)
protected

현재 월드에 위젯이 없으면 생성하고 Game Viewport에 부착합니다.

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

31{
32 if (World == nullptr || !World->IsGameWorld())
33 return;
34
35 // 위젯이 유효하고 같은 월드이며, 뷰포트에 추가되어 있는지 확인
36 if (IsValid(CircleWidget) &&
37 CircleWidget->GetWorld() == World &&
38 CircleWidget->IsInViewport())
39 {
40 return;
41 }
42
43 // 기존 위젯이 있으면 정리
44 if (CircleWidget)
45 {
46 if (CircleWidget->IsInViewport())
47 CircleWidget->RemoveFromParent();
48
49 CircleWidget = nullptr;
50 }
51
52 ULocalPlayer* LocalPlayer = GetLocalPlayer();
53 if (LocalPlayer == nullptr)
54 return;
55
56 APlayerController* PC = LocalPlayer->GetPlayerController(World);
57 if (PC == nullptr)
58 return;
59
61 return;
62
63 ULoadginCircle* NewWidget = CreateWidget<ULoadginCircle>(PC, CircleWidgetClass);
64 if (!NewWidget)
65 return;
66
67 // Game Viewport에 추가하여 레벨 전환 시에도 유지
69 CircleWidget = NewWidget;
70
71 // 위젯 재생성 시 현재 카운트에 따라 표시 상태 복원
72 if (LoadingCount > 0)
73 {
75 }
76 else
77 {
78 CircleWidget->Hide();
79 }
80}
네트워크 대기 상태를 표시하는 로딩 서클 위젯입니다.
void Show()
로딩 서클을 표시합니다.
void AddToGameViewport(int32 ZOrder)
위젯을 Game Viewport에 추가하여 레벨 전환 시에도 유지되도록 합니다.
TObjectPtr< class ULoadginCircle > CircleWidget
int32 LoadingCount
Manager가 관리하는 로딩 카운트 (위젯 재생성 시에도 유지됨)
static const int32 LoadingCircle
Definition Onepiece.h:12

다음을 참조함 : ULoadginCircle::AddToGameViewport(), CircleWidget, CircleWidgetClass, GameLayer::LoadingCircle, LoadingCount, ULoadginCircle::Show().

다음에 의해서 참조됨 : Hide(), Show().

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

◆ GetLoadingCount()

int32 ULoadingCircleManager::GetLoadingCount ( ) const

현재 로딩 카운트를 반환합니다.

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

134{
135 return LoadingCount;
136}

다음을 참조함 : LoadingCount.

◆ Hide()

void ULoadingCircleManager::Hide ( )

로딩 카운트를 감소시킵니다.

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

104{
105 const int32 OldCount = LoadingCount;
106 LoadingCount = FMath::Max(0, LoadingCount - 1);
107
108 PRINTLOG(TEXT("[LoadingCircleManager] Hide - Count: %d → %d"), OldCount, LoadingCount);
109
110 if (OldCount == 0)
111 {
112 PRINTLOG(TEXT("[LoadingCircleManager] WARNING: Hide called but count was already 0!"));
113 }
114
115 if (UWorld* World = GetWorld())
116 {
118
119 if (CircleWidget)
120 {
121 if (LoadingCount == 0)
122 {
123 CircleWidget->Hide();
124 }
125 }
126 else
127 {
128 PRINTLOG(TEXT("[LoadingCircleManager] Hide FAILED - Widget is nullptr!"));
129 }
130 }
131}
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30
void EnsureWidgetForWorld(UWorld *World)
현재 월드에 위젯이 없으면 생성하고 Game Viewport에 부착합니다.

다음을 참조함 : CircleWidget, EnsureWidgetForWorld(), LoadingCount, PRINTLOG.

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

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

◆ LoadingCircle()

void ULoadingCircleManager::LoadingCircle ( bool  bShow)

로딩 서클을 표시하거나 숨깁니다.

매개변수
bShowtrue면 Show() 호출, false면 Hide() 호출

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

139{
140 if (bShow)
141 {
142 Show();
143 }
144 else
145 {
146 Hide();
147 }
148}
void Show()
로딩 카운트를 증가시킵니다.
void Hide()
로딩 카운트를 감소시킵니다.

다음을 참조함 : Hide(), Show().

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

◆ Show()

void ULoadingCircleManager::Show ( )

로딩 카운트를 증가시킵니다.

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

83{
85
86 PRINTLOG(TEXT("[LoadingCircleManager] Show - Count: %d → %d"), LoadingCount - 1, LoadingCount);
87
88 if (UWorld* World = GetWorld())
89 {
91
92 if (CircleWidget && LoadingCount > 0)
93 {
94 CircleWidget->Show();
95 }
96 else if (!CircleWidget)
97 {
98 PRINTLOG(TEXT("[LoadingCircleManager] Show FAILED - Widget is nullptr!"));
99 }
100 }
101}

다음을 참조함 : CircleWidget, EnsureWidgetForWorld(), LoadingCount, PRINTLOG.

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

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

멤버 데이터 문서화

◆ CircleWidget

TObjectPtr<class ULoadginCircle> ULoadingCircleManager::CircleWidget
protected

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

다음에 의해서 참조됨 : EnsureWidgetForWorld(), Hide(), Show().

◆ CircleWidgetClass

TSubclassOf<class ULoadginCircle> ULoadingCircleManager::CircleWidgetClass
protected

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

다음에 의해서 참조됨 : ULoadingCircleManager(), EnsureWidgetForWorld().

◆ LoadingCount

int32 ULoadingCircleManager::LoadingCount = 0
protected

Manager가 관리하는 로딩 카운트 (위젯 재생성 시에도 유지됨)

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

다음에 의해서 참조됨 : EnsureWidgetForWorld(), GetLoadingCount(), Hide(), Show().


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