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

HowToPlay 팝업 위젯 더 자세히 ...

#include <UPopup_HowToPlay.h>

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

Public 멤버 함수

void InitPopup (const TArray< EHowToPlayPageType > &InPageTypes)
 팝업을 초기화합니다.
 
virtual void NativeTick (const FGeometry &MyGeometry, float InDeltaTime) override
 
void OpenAnimation ()
 팝업 오픈 애니메이션을 재생합니다
 

Public 속성

bool bAllowPlayerControl = false
 이 팝업이 활성화되어 있을 때 플레이어 조작을 허용할지 여부
 
FOnHowToPlayClosedDelegate OnClosedDelegate
 팝업 닫힘 시 호출될 델리게이트
 

Protected 멤버 함수

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

Protected 속성

bool bIsOpenAnim = false
 애니메이션 재생 중 여부
 
UWidgetAnimation * BlueprintOpenAnimation
 블루프린트에서 정의한 오픈 애니메이션
 
TObjectPtr< class UTextureButtonBtn_Close
 닫기 버튼 (우측 상단)
 
TObjectPtr< class UTextureButtonBtn_Next
 다음 페이지 버튼 (선택적)
 
TObjectPtr< class UTextureButtonBtn_Prev
 이전 페이지 버튼 (선택적)
 
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
 목표 스케일
 
TObjectPtr< class UPageScrollViewPageScrollView
 페이지 스크롤 뷰
 
EPopupType PopupType
 

Private 멤버 함수

TArray< FHowToPlayPageDataGetPageDataArray () const
 페이지 데이터 배열을 가져옵니다.
 
void InitPageScrollView ()
 
void OnClickClose ()
 닫기 버튼 클릭 이벤트
 
void OnClickNext ()
 다음 페이지 버튼 클릭 이벤트
 
void OnClickPrev ()
 이전 페이지 버튼 클릭 이벤트
 
void OnPageChanged (int32 PrevPage, int32 CurrentPage)
 페이지 변경 이벤트
 
void UpdateNavigationButtons ()
 페이지 네비게이션 버튼 상태를 업데이트합니다.
 

Private 속성

TArray< EHowToPlayPageTypePageTypes
 

상세한 설명

HowToPlay 팝업 위젯

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

멤버 함수 문서화

◆ GetPageDataArray()

TArray< FHowToPlayPageData > UPopup_HowToPlay::GetPageDataArray ( ) const
private

페이지 데이터 배열을 가져옵니다.

반환값
페이지 데이터 배열

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

113{
114 TArray<FHowToPlayPageData> RetData;
115
116 if ( auto DM = UGameDataManager::Get(GetWorld()) )
117 {
118 for (const EHowToPlayPageType& pageType : PageTypes)
119 {
120 FHowToPlayPageData pageData;
121 if (DM->GetHowToPlayPageData(pageType, pageData))
122 RetData.Add(pageData);
123 }
124 }
125
126 return RetData;
127}
EHowToPlayPageType
HowToPlay 페이지 타입
TArray< EHowToPlayPageType > PageTypes
HowToPlay 페이지 데이터

다음을 참조함 : PageTypes.

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

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

◆ InitPageScrollView()

void UPopup_HowToPlay::InitPageScrollView ( )
private

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

40{
41 if (!PageScrollView)
42 return;
43
44 // 5개 페이지 생성
45 PageScrollView->SetNumberOfPages(PageTypes.Num());
46
47 // 페이지 변경 이벤트 바인딩
48 PageScrollView->OnPageChanged.RemoveDynamic(this, &UPopup_HowToPlay::OnPageChanged);
49 PageScrollView->OnPageChanged.AddDynamic(this, &UPopup_HowToPlay::OnPageChanged);
50
51 // 각 페이지에 데이터 설정
52 TArray<FHowToPlayPageData> PageDataArray = GetPageDataArray();
53 for (int32 i = 0; i < PageDataArray.Num() && i < PageScrollView->GetTotalPages(); ++i)
54 {
55 if (auto Page = Cast<UPopup_HowToPlayItem>(PageScrollView->GetPageAt(i)))
56 {
57 Page->InitPageData(PageDataArray[i]);
58 }
59 }
60}
TObjectPtr< class UPageScrollView > PageScrollView
페이지 스크롤 뷰
void OnPageChanged(int32 PrevPage, int32 CurrentPage)
페이지 변경 이벤트
TArray< FHowToPlayPageData > GetPageDataArray() const
페이지 데이터 배열을 가져옵니다.

다음을 참조함 : GetPageDataArray(), OnPageChanged(), PageScrollView, PageTypes.

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

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

◆ InitPopup()

void UPopup_HowToPlay::InitPopup ( const TArray< EHowToPlayPageType > &  InPageTypes)

팝업을 초기화합니다.

매개변수
[in]InPageTypes표시할 페이지 타입 목록

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

12{
13 // 버튼 이벤트 바인딩
14 if (Btn_Close)
15 {
16 Btn_Close->OnButtonClickedEvent.RemoveDynamic(this, &UPopup_HowToPlay::OnClickClose);
17 Btn_Close->OnButtonClickedEvent.AddDynamic(this, &UPopup_HowToPlay::OnClickClose);
18 }
19
20 if (Btn_Prev)
21 {
22 Btn_Prev->OnButtonClickedEvent.RemoveDynamic(this, &UPopup_HowToPlay::OnClickPrev);
23 Btn_Prev->OnButtonClickedEvent.AddDynamic(this, &UPopup_HowToPlay::OnClickPrev);
24 }
25
26 if (Btn_Next)
27 {
28 Btn_Next->OnButtonClickedEvent.RemoveDynamic(this, &UPopup_HowToPlay::OnClickNext);
29 Btn_Next->OnButtonClickedEvent.AddDynamic(this, &UPopup_HowToPlay::OnClickNext);
30 }
31
32 PageTypes = InPageTypes;
33
35
37}
void OnClickPrev()
이전 페이지 버튼 클릭 이벤트
void OnClickNext()
다음 페이지 버튼 클릭 이벤트
void UpdateNavigationButtons()
페이지 네비게이션 버튼 상태를 업데이트합니다.
TObjectPtr< class UTextureButton > Btn_Close
닫기 버튼 (우측 상단)
TObjectPtr< class UTextureButton > Btn_Next
다음 페이지 버튼 (선택적)
TObjectPtr< class UTextureButton > Btn_Prev
이전 페이지 버튼 (선택적)
void OnClickClose()
닫기 버튼 클릭 이벤트

다음을 참조함 : Btn_Close, Btn_Next, Btn_Prev, InitPageScrollView(), OnClickClose(), OnClickNext(), OnClickPrev(), PageTypes, UpdateNavigationButtons().

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

◆ 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().

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

◆ OnClickClose()

void UPopup_HowToPlay::OnClickClose ( )
private

닫기 버튼 클릭 이벤트

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

81{
82 // PopupManager를 통해 팝업 닫기
83 if (UPopupManager* PopupMgr = UPopupManager::Get(GetWorld()))
84 {
85 PopupMgr->HideCurrentPopup();
86 }
87
88 // 델리게이트 호출
89 if (OnClosedDelegate.IsBound())
90 {
91 OnClosedDelegate.Execute();
92 OnClosedDelegate = nullptr;
93 }
94}
팝업 관리자
FOnHowToPlayClosedDelegate OnClosedDelegate
팝업 닫힘 시 호출될 델리게이트

다음을 참조함 : OnClosedDelegate.

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

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

◆ OnClickNext()

void UPopup_HowToPlay::OnClickNext ( )
private

다음 페이지 버튼 클릭 이벤트

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

102{
103 PageScrollView->NextPage();
104}

다음을 참조함 : PageScrollView.

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

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

◆ OnClickPrev()

void UPopup_HowToPlay::OnClickPrev ( )
private

이전 페이지 버튼 클릭 이벤트

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

97{
98 PageScrollView->PrevPage();
99}

다음을 참조함 : PageScrollView.

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

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

◆ OnPageChanged()

void UPopup_HowToPlay::OnPageChanged ( int32  PrevPage,
int32  CurrentPage 
)
private

페이지 변경 이벤트

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

107{
108 // 네비게이션 버튼 상태 업데이트
110}

다음을 참조함 : UpdateNavigationButtons().

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

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

◆ 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.

◆ 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().

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

◆ UpdateNavigationButtons()

void UPopup_HowToPlay::UpdateNavigationButtons ( )
private

페이지 네비게이션 버튼 상태를 업데이트합니다.

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

63{
64 if (!PageScrollView)
65 return;
66
67 Btn_Prev->SetVisibility( PageTypes.Num() > 1 ? ESlateVisibility::Visible : ESlateVisibility::Hidden );
68 Btn_Next->SetVisibility( PageTypes.Num() > 1 ? ESlateVisibility::Visible : ESlateVisibility::Hidden );
69
70 int32 CurPage = PageScrollView->GetCurrentPage();
71 int32 TotalPages = PageScrollView->GetTotalPages();
72
73 // 이전 버튼 활성화/비활성화
74 Btn_Prev->SetIsEnabled(CurPage > 0);
75
76 // 다음 버튼 활성화/비활성화
77 Btn_Next->SetIsEnabled(CurPage < TotalPages - 1);
78}

다음을 참조함 : Btn_Next, Btn_Prev, PageScrollView, PageTypes.

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

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

멤버 데이터 문서화

◆ 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_Close

TObjectPtr<class UTextureButton> UPopup_HowToPlay::Btn_Close
protected

닫기 버튼 (우측 상단)

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

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

◆ Btn_Next

TObjectPtr<class UTextureButton> UPopup_HowToPlay::Btn_Next
protected

다음 페이지 버튼 (선택적)

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

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

◆ Btn_Prev

TObjectPtr<class UTextureButton> UPopup_HowToPlay::Btn_Prev
protected

이전 페이지 버튼 (선택적)

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

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

◆ OnClosedDelegate

FOnHowToPlayClosedDelegate UPopup_HowToPlay::OnClosedDelegate

팝업 닫힘 시 호출될 델리게이트

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

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

◆ 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().

◆ PageScrollView

TObjectPtr<class UPageScrollView> UPopup_HowToPlay::PageScrollView
protected

페이지 스크롤 뷰

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

다음에 의해서 참조됨 : InitPageScrollView(), OnClickNext(), OnClickPrev(), UpdateNavigationButtons().

◆ PageTypes

TArray<EHowToPlayPageType> UPopup_HowToPlay::PageTypes
private

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

다음에 의해서 참조됨 : GetPageDataArray(), InitPageScrollView(), InitPopup(), UpdateNavigationButtons().

◆ PopupType

EPopupType UBasePopup::PopupType
protectedinherited

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

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


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