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

#include <UPopup_InputMsg.h>

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

Public 멤버 함수

void InitPopup (const EPopupType PopupType)
 
virtual void NativeTick (const FGeometry &MyGeometry, float InDeltaTime) override
 
void OpenAnimation ()
 팝업 오픈 애니메이션을 재생합니다
 

Public 속성

bool bAllowPlayerControl = false
 이 팝업이 활성화되어 있을 때 플레이어 조작을 허용할지 여부
 
class UImageButtonBtn_Cancel
 
class UTextureButtonBtn_Close
 
class UImageButtonBtn_Ok
 
class UEditableTextBox * Edit_Name
 
class UTextBlock * Txt_Desc
 
class UTextBlock * Txt_Title
 

Protected 멤버 함수

virtual void NativeConstruct () override
 
void UpdateAnimation (float InDeltaTime)
 스크립트 오픈 애니메이션 업데이트
 

Protected 속성

bool bIsOpenAnim = false
 애니메이션 재생 중 여부
 
UWidgetAnimation * BlueprintOpenAnimation
 블루프린트에서 정의한 오픈 애니메이션
 
EGameSoundType OpenAnimSound = EGameSoundType::UI_PopupOpen
 팝업 오픈 시 재생될 사운드 타입
 
float OpenDuration = 0.2f
 애니메이션 지속 시간
 
EEaseType OpenEaseType = EEaseType::EaseOutBack
 Easing 타입
 
float OpenElapsedTime = 0.0f
 경과 시간
 
FVector2D OpenPivot = FVector2D(0.5f, 0.5f)
 애니메이션 중심점 (0~1 범위)
 
float OpenStartScale = 0.8f
 시작 스케일
 
float OpenTargetScale = 1.0f
 목표 스케일
 
EPopupType PopupType
 

Private 멤버 함수

void OnClickCancel ()
 
void OnClickOk ()
 
void OnResponseUserMe (FResponseUserMe &ResponseData, bool bWasSuccessful)
 
void OnResponseUserRegister (FResponseUserRegister &ResponseData, bool bWasSuccessful)
 
void OnResponseUserToken (FResponseUserToken &ResponseData, bool bWasSuccessful)
 
void RequestUserMe ()
 
void RequestUserRegister (const FString &UserInput)
 
void RequestUserToken (const FString &UserInput)
 
void SetDesc (const FString &InDescription)
 
void SetTitle (const FString &InTitle)
 

상세한 설명

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

멤버 함수 문서화

◆ InitPopup()

void UPopup_InputMsg::InitPopup ( const EPopupType  PopupType)

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

52{
53 // 중복 바인딩 방지: 기존 바인딩 제거 후 재바인딩
54 if (Btn_Close)
55 {
58 }
59 if (Btn_Ok)
60 {
63 }
64 if (Btn_Cancel)
65 {
68 }
69
70 this->PopupType = InPopupType;
71
72 if ( PopupType == EPopupType::Login )
73 {
74 this->SetTitle("Login");
75 this->SetDesc("Please enter your registered name below.");
76 }
77 else
78 {
79 this->SetTitle("Registeration");
80 this->SetDesc("Please enter your name below.");
81 }
82}
EPopupType PopupType
Definition UBasePopup.h:34
FOnImageButtonClickedEvent OnButtonClickedEvent
버튼 클릭 시 발생하는 이벤트
void SetTitle(const FString &InTitle)
class UTextureButton * Btn_Close
void SetDesc(const FString &InDescription)
class UImageButton * Btn_Cancel
class UImageButton * Btn_Ok
FOnTextureButtonClickedEvent OnButtonClickedEvent
버튼 클릭 이벤트

다음을 참조함 : Btn_Cancel, Btn_Close, Btn_Ok, UImageButton::OnButtonClickedEvent, UTextureButton::OnButtonClickedEvent, OnClickCancel(), OnClickOk(), UBasePopup::PopupType, SetDesc(), SetTitle().

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

◆ NativeConstruct()

void UPopup_InputMsg::NativeConstruct ( )
overrideprotectedvirtual

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

19{
20 Super::NativeConstruct();
21}

◆ NativeTick()

void UBasePopup::NativeTick ( const FGeometry &  MyGeometry,
float  InDeltaTime 
)
overridevirtualinherited

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

8{
9 Super::NativeTick(MyGeometry, InDeltaTime);
10
11 if (bIsOpenAnim)
12 {
13 UpdateAnimation(InDeltaTime);
14 }
15}
bool bIsOpenAnim
애니메이션 재생 중 여부
Definition UBasePopup.h:57
void UpdateAnimation(float InDeltaTime)
스크립트 오픈 애니메이션 업데이트

다음을 참조함 : UBasePopup::bIsOpenAnim, UBasePopup::UpdateAnimation().

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

◆ OnClickCancel()

void UPopup_InputMsg::OnClickCancel ( )
private

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

43{
44 // PopupManager를 통해 팝업 닫기 (마우스 커서 처리 포함)
45 if (UPopupManager* PopupMgr = UPopupManager::Get(GetWorld()))
46 {
47 PopupMgr->HideCurrentPopup();
48 }
49}
팝업 관리자

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

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

◆ OnClickOk()

void UPopup_InputMsg::OnClickOk ( )
private

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

27{
28 const FString InputString = Edit_Name->GetText().ToString();
29
30 if ( PopupType == EPopupType::Login )
31 RequestUserToken(InputString);
32 else
33 RequestUserRegister(InputString);
34
35 // PopupManager를 통해 팝업 닫기 (마우스 커서 처리 포함)
36 if (UPopupManager* PopupMgr = UPopupManager::Get(GetWorld()))
37 {
38 PopupMgr->HideCurrentPopup();
39 }
40}
void RequestUserToken(const FString &UserInput)
void RequestUserRegister(const FString &UserInput)
class UEditableTextBox * Edit_Name

다음을 참조함 : Edit_Name, UBasePopup::PopupType, RequestUserRegister(), RequestUserToken().

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

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

◆ OnResponseUserMe()

void UPopup_InputMsg::OnResponseUserMe ( FResponseUserMe ResponseData,
bool  bWasSuccessful 
)
private

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

165{
166 if (bWasSuccessful)
167 {
168 PRINTLOG(TEXT("--- User Me SUCCESS ---"));
169
170 // 로비맵으로 (Seamless Travel로 PlayerState 유지)
171 if (UWorld* World = GetWorld())
172 {
173 UDialogManager::Get(GetWorld())->ShowToast(TEXT("Login Success"));
174
175 World->ServerTravel(TEXT("/Game/CustomContents/Maps/LobbyMap?listen"), true, false);
176 }
177 }
178 else
179 {
180 PRINTLOG(TEXT("--- User Token FAILED ---"));
181 }
182}
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30

다음을 참조함 : PRINTLOG.

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

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

◆ OnResponseUserRegister()

void UPopup_InputMsg::OnResponseUserRegister ( FResponseUserRegister ResponseData,
bool  bWasSuccessful 
)
private

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

124{
125 if (bWasSuccessful)
126 {
127 PRINTLOG(TEXT("--- User Register SUCCESS ---"));
128 ResponseData.PrintData();
129
130 // 가입 성공 시 토큰 발급
131 RequestUserToken(ResponseData.username);
132 }
133 else
134 {
135 PRINTLOG(TEXT("--- User Register FAILED ---"));
136 }
137}
void PrintData() const
디버그 로그에 응답 내용을 출력합니다.

다음을 참조함 : FResponseUserRegister::PrintData(), PRINTLOG, RequestUserToken(), FResponseUserRegister::username.

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

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

◆ OnResponseUserToken()

void UPopup_InputMsg::OnResponseUserToken ( FResponseUserToken ResponseData,
bool  bWasSuccessful 
)
private

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

140{
141 if (bWasSuccessful)
142 {
143 PRINTLOG(TEXT("--- User Token SUCCESS ---"));
145 }
146 else
147 {
148 PRINTLOG(TEXT("--- User Token FAILED ---"));
149 }
150}

다음을 참조함 : PRINTLOG, RequestUserMe().

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

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

◆ OpenAnimation()

void UBasePopup::OpenAnimation ( )
inherited

팝업 오픈 애니메이션을 재생합니다

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

18{
19 if (!IsInViewport())
20 {
21 AddToViewport();
22 }
23
24 // 팝업 오픈 사운드 재생 (None이 아닐 때만)
26 {
27 if (UGameSoundManager* SoundManager = UGameSoundManager::Get(this))
28 {
29 SoundManager->PlaySound2D(OpenAnimSound);
30 }
31 }
32
33 // 블루프린트에서 정의한 애니메이션이 있으면 해당 애니메이션 재생
35 {
36 PlayAnimation(BlueprintOpenAnimation);
37 return;
38 }
39
40 // 블루프린트 애니메이션이 없으면 기본 스크립트 애니메이션 사용
41 SetRenderTransformPivot(OpenPivot);
42 SetRenderScale(FVector2D(OpenStartScale, OpenStartScale));
43
44 bIsOpenAnim = OpenDuration > KINDA_SMALL_NUMBER;
45 OpenElapsedTime = 0.0f;
46
47 if (!bIsOpenAnim)
48 {
49 SetRenderScale(FVector2D(OpenTargetScale, OpenTargetScale));
50 }
51}
EGameSoundType OpenAnimSound
팝업 오픈 시 재생될 사운드 타입
Definition UBasePopup.h:96
float OpenDuration
애니메이션 지속 시간
Definition UBasePopup.h:64
float OpenElapsedTime
경과 시간
Definition UBasePopup.h:60
float OpenStartScale
시작 스케일
Definition UBasePopup.h:68
FVector2D OpenPivot
애니메이션 중심점 (0~1 범위)
Definition UBasePopup.h:76
float OpenTargetScale
목표 스케일
Definition UBasePopup.h:72
UWidgetAnimation * BlueprintOpenAnimation
블루프린트에서 정의한 오픈 애니메이션
Definition UBasePopup.h:45
게임 내 모든 사운드 재생을 관리하는 중앙 사운드 관리 서브시스템입니다.

다음을 참조함 : UBasePopup::bIsOpenAnim, UBasePopup::BlueprintOpenAnimation, None, UBasePopup::OpenAnimSound, UBasePopup::OpenDuration, UBasePopup::OpenElapsedTime, UBasePopup::OpenPivot, UBasePopup::OpenStartScale, UBasePopup::OpenTargetScale.

◆ RequestUserMe()

void UPopup_InputMsg::RequestUserMe ( )
private

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

153{
154 if (auto KLingoNetwork = UKLingoNetworkSystem::Get(GetWorld()))
155 {
156 KLingoNetwork->RequestUserMe( FResponseUserMeDelegate::CreateUObject(this, &UPopup_InputMsg::OnResponseUserMe) );
157 }
158 else
159 {
160 PRINTLOG(TEXT("UKLingoNetworkSystem not found!"));
161 }
162}
void OnResponseUserMe(FResponseUserMe &ResponseData, bool bWasSuccessful)

다음을 참조함 : OnResponseUserMe(), PRINTLOG.

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

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

◆ RequestUserRegister()

void UPopup_InputMsg::RequestUserRegister ( const FString &  UserInput)
private

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

85{
86 if (UserInput.IsEmpty())
87 return;
88
89 if (auto KLingoNetwork = UKLingoNetworkSystem::Get(GetWorld()))
90 {
91 PRINTLOG(TEXT("[TEST] RequestUserRegister - UserName: %s"), *UserInput);
92 KLingoNetwork->RequestUserRegister(
93 UserInput,
94 FResponseUserRegisterDelegate::CreateUObject(this,
96 );
97 }
98 else
99 {
100 PRINTLOG(TEXT("UKLingoNetworkSystem not found!"));
101 }
102}
void OnResponseUserRegister(FResponseUserRegister &ResponseData, bool bWasSuccessful)

다음을 참조함 : OnResponseUserRegister(), PRINTLOG.

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

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

◆ RequestUserToken()

void UPopup_InputMsg::RequestUserToken ( const FString &  UserInput)
private

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

105{
106 if (UserInput.IsEmpty())
107 return;
108
109 if (auto KLingoNetwork = UKLingoNetworkSystem::Get(GetWorld()))
110 {
111 PRINTLOG(TEXT("[TEST] RequestUserToken - UserName: %s"), *UserInput);
112 KLingoNetwork->RequestUserToken(
113 UserInput,
114 FResponseUserTokenDelegate::CreateUObject(this, &UPopup_InputMsg::OnResponseUserToken)
115 );
116 }
117 else
118 {
119 PRINTLOG(TEXT("UKLingoNetworkSystem not found!"));
120 }
121}
void OnResponseUserToken(FResponseUserToken &ResponseData, bool bWasSuccessful)

다음을 참조함 : OnResponseUserToken(), PRINTLOG.

다음에 의해서 참조됨 : OnClickOk(), OnResponseUserRegister().

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

◆ SetDesc()

void UPopup_InputMsg::SetDesc ( const FString &  InDescription)
private

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

24{ Txt_Desc->SetText(FText::FromString(InDescription)); }
class UTextBlock * Txt_Desc

다음을 참조함 : Txt_Desc.

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

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

◆ SetTitle()

void UPopup_InputMsg::SetTitle ( const FString &  InTitle)
private

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

23{ Txt_Title->SetText(FText::FromString(InTitle)); }
class UTextBlock * Txt_Title

다음을 참조함 : Txt_Title.

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

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

◆ UpdateAnimation()

void UBasePopup::UpdateAnimation ( float  InDeltaTime)
protectedinherited

스크립트 오픈 애니메이션 업데이트

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

54{
55 if (!bIsOpenAnim)
56 {
57 return;
58 }
59
60 OpenElapsedTime += InDeltaTime;
61
62 const float Alpha = FMath::Clamp(OpenElapsedTime / OpenDuration, 0.0f, 1.0f);
63 const float EasedAlpha = FEaseHelper::Ease(Alpha, OpenEaseType);
64 const float NewScale = FMath::Lerp(OpenStartScale, OpenTargetScale, EasedAlpha);
65
66 SetRenderScale(FVector2D(NewScale, NewScale));
67
68 if (Alpha >= 1.0f)
69 {
70 bIsOpenAnim = false;
71 }
72}
EEaseType OpenEaseType
Easing 타입
Definition UBasePopup.h:83
static float Ease(float Alpha, EEaseType Type)
Definition FEaseHelper.h:45

다음을 참조함 : UBasePopup::bIsOpenAnim, FEaseHelper::Ease(), UBasePopup::OpenDuration, UBasePopup::OpenEaseType, UBasePopup::OpenElapsedTime, UBasePopup::OpenStartScale, UBasePopup::OpenTargetScale.

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

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

멤버 데이터 문서화

◆ bAllowPlayerControl

bool UBasePopup::bAllowPlayerControl = false
inherited

이 팝업이 활성화되어 있을 때 플레이어 조작을 허용할지 여부

true면 이 팝업이 열려있어도 플레이어가 캐릭터를 조작할 수 있습니다. 기본값은 false (대부분의 팝업은 플레이어 조작을 차단)

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

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

◆ bIsOpenAnim

bool UBasePopup::bIsOpenAnim = false
protectedinherited

애니메이션 재생 중 여부

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

다음에 의해서 참조됨 : UBasePopup::NativeTick(), UBasePopup::OpenAnimation(), UBasePopup::UpdateAnimation().

◆ BlueprintOpenAnimation

UWidgetAnimation* UBasePopup::BlueprintOpenAnimation
protectedinherited

블루프린트에서 정의한 오픈 애니메이션

설정된 경우 스크립트 애니메이션 대신 이 애니메이션을 재생합니다.

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

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

◆ Btn_Cancel

class UImageButton* UPopup_InputMsg::Btn_Cancel

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

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

◆ Btn_Close

class UTextureButton* UPopup_InputMsg::Btn_Close

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

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

◆ Btn_Ok

class UImageButton* UPopup_InputMsg::Btn_Ok

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

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

◆ Edit_Name

class UEditableTextBox* UPopup_InputMsg::Edit_Name

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

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

◆ OpenAnimSound

EGameSoundType UBasePopup::OpenAnimSound = EGameSoundType::UI_PopupOpen
protectedinherited

팝업 오픈 시 재생될 사운드 타입

블루프린트에서 팝업별로 다른 사운드를 설정할 수 있습니다. None으로 설정하면 사운드를 재생하지 않습니다. 기본값은 UI_PopupOpen입니다.

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

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

◆ OpenDuration

float UBasePopup::OpenDuration = 0.2f
protectedinherited

애니메이션 지속 시간

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

다음에 의해서 참조됨 : UBasePopup::OpenAnimation(), UBasePopup::UpdateAnimation().

◆ OpenEaseType

EEaseType UBasePopup::OpenEaseType = EEaseType::EaseOutBack
protectedinherited

Easing 타입

애니메이션의 보간 곡선을 선택합니다. 기본값은 EaseOutBack (탄성 효과)

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

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

◆ OpenElapsedTime

float UBasePopup::OpenElapsedTime = 0.0f
protectedinherited

경과 시간

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

다음에 의해서 참조됨 : UBasePopup::OpenAnimation(), UBasePopup::UpdateAnimation().

◆ OpenPivot

FVector2D UBasePopup::OpenPivot = FVector2D(0.5f, 0.5f)
protectedinherited

애니메이션 중심점 (0~1 범위)

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

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

◆ OpenStartScale

float UBasePopup::OpenStartScale = 0.8f
protectedinherited

시작 스케일

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

다음에 의해서 참조됨 : UBasePopup::OpenAnimation(), UBasePopup::UpdateAnimation().

◆ OpenTargetScale

float UBasePopup::OpenTargetScale = 1.0f
protectedinherited

목표 스케일

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

다음에 의해서 참조됨 : UBasePopup::OpenAnimation(), UBasePopup::UpdateAnimation().

◆ PopupType

EPopupType UBasePopup::PopupType
protectedinherited

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

다음에 의해서 참조됨 : InitPopup(), OnClickOk().

◆ Txt_Desc

class UTextBlock* UPopup_InputMsg::Txt_Desc

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

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

◆ Txt_Title

class UTextBlock* UPopup_InputMsg::Txt_Title

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

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


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