KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UPopup_SpeakQuestJudes.cpp
이 파일의 문서화 페이지로 가기
1// Copyright (c) 2025 Doppleddiggong. All rights reserved. Unauthorized copying, modification, or distribution of this file, via any medium is strictly prohibited. Proprietary and confidential.
2
3
5
6#include "UImageButton.h"
7#include "NetworkData.h"
8#include "Animation/WidgetAnimation.h"
9#include "UDespawnItem.h"
10#include "UGameDataManager.h"
11#include "ULingoGameHelper.h"
12#include "UPopupManager.h"
13#include "EPopupType.h"
14#include "Components/Image.h"
15
16
18{
19 Super::NativeConstruct();
20
21 // 이 팝업은 플레이어 조작을 허용
23
24 if (HideAnim)
25 {
26 // 이 객체에 바인딩된 모든 델리게이트 제거 (중복 방지)
27 UnbindAllFromAnimationFinished(HideAnim);
28
29 // 새로 바인딩
30 FWidgetAnimationDynamicEvent HideDelegate;
31 HideDelegate.BindDynamic(this, &UPopup_SpeakQuestJudes::OnHideAnimComplete);
32 BindToAnimationFinished(HideAnim, HideDelegate);
33 }
34}
35
37{
38 auto ResultList = Response.GetResultStatData();
39 GrammerItem->InitData( ResultList[0]);
40 ContextItem->InitData( ResultList[1]);
41
43
44 UGameDataManager* DataManager = UGameDataManager::Get(this);
45 if (!DataManager)
46 return;
47
48 UTexture2D* Texture = DataManager->GetTexture(TextureType);
49 if (!Texture)
50 return;
51
52 FSlateBrush Brush = Image_Grade->GetBrush();
53 Brush.SetResourceObject(Texture);
54 Image_Grade->SetBrush(Brush);
55
56 if (GetWorld() && GetWorld()->GetTimerManager().IsTimerActive(LifetimeTimer))
57 GetWorld()->GetTimerManager().ClearTimer(LifetimeTimer);
58
59 PlayAnimation(ShowAnim);
60
61 GetWorld()->GetTimerManager().SetTimer(
63 this,
66 false
67 );
68}
69
71{
72 PlayAnimation(HideAnim);
73}
74
76{
77 if (UPopupManager* PopupMgr = UPopupManager::Get(GetWorld()))
78 {
79 // HideCurrentPopup() 대신 자기 자신을 명시적으로 닫기
80 // (위에 다른 팝업이 있어도 자신만 스택에서 제거됨)
81 PopupMgr->HidePopup(EPopupType::SpeakQuestJudes);
82 }
83}
EResourceTextureType
네트워크 요청과 응답에 사용되는 구조체 및 설정을 정의합니다.
UGameDataManager 클래스를 선언합니다.
bool bAllowPlayerControl
이 팝업이 활성화되어 있을 때 플레이어 조작을 허용할지 여부
Definition UBasePopup.h:105
데이터 테이블(.csv)에서 게임 데이터를 로드하고 캐시하여 런타임에 빠르게 접근할 수 있도록 제공하는 데이터 관리 서브시스템입니다.
UTexture2D * GetTexture(EResourceTextureType Type) const
static EResourceTextureType ConvertGradeScore(const float Score)
팝업 관리자
TObjectPtr< class UImage > Image_Grade
TObjectPtr< class UWidgetAnimation > HideAnim
Hide Animation
TObjectPtr< class UWidgetAnimation > ShowAnim
Show Animation
void OnHideAnimComplete()
HideAnim 완료 시 호출되는 콜백
TObjectPtr< class UDespawnItem > ContextItem
void OnClickOk()
확인 버튼 클릭 시 호출
virtual void NativeConstruct() override
위젯 초기화
FTimerHandle LifetimeTimer
Lifetime 타이머 핸들
TObjectPtr< class UDespawnItem > GrammerItem
void InitPopup(const struct FResponseSpeakingJudes &Response)
팝업을 초기화하고 데이터를 설정합니다
float Lifetime
아이템 생존 시간 (초)
Speaking Questions 응답 구조체입니다.
TArray< FResultStatData > GetResultStatData() const