KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UPopup_Evaluation.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#include "UPopup_Evaluation.h"
4
5#include "GameLogging.h"
6#include "OnlineSubsystemUtils.h"
7#include "UTabButtonGroup.h"
9#include "UEvaluationTotal.h"
10#include "UGameSoundManager.h"
11#include "UImageButton.h"
12#include "UPopupManager.h"
13#include "Kismet/GameplayStatics.h"
14
16{
17 Super::NativeConstruct();
18
19 if (Btn_Confirm)
20 {
21 Btn_Confirm->OnButtonClickedEvent.RemoveDynamic(this, &UPopup_Evaluation::OnClickClose);
22 Btn_Confirm->OnButtonClickedEvent.AddDynamic(this, &UPopup_Evaluation::OnClickClose);
23 }
24}
25
27{
28 Panel_TotalResult->InitPanel(InEvaluationResult.total_result);
29
30 for (const FScenarioResult& ScenarioResult : InEvaluationResult.scenario_results)
31 {
32 switch (ScenarioResult.scenario_type)
33 {
34 case EScenarioType::READING:
35 Panel_Reading->InitPanel(ScenarioResult);
36 break;
37
38 case EScenarioType::LISTENING:
39 Panel_Listening->InitPanel(ScenarioResult);
40 break;
41
42 case EScenarioType::WRITING:
43 Panel_Writing->InitPanel(ScenarioResult);
44 break;
45
46 case EScenarioType::SPEAKING:
47 Panel_Speaking->InitPanel(ScenarioResult);
48 break;
49
50 default:
51 break;
52 }
53 }
54}
55
57{
58 if (UPopupManager* PopupMgr = UPopupManager::Get(GetWorld()))
59 {
60 PopupMgr->HidePopup(EPopupType::Evaluation);
61
62 // MsgBox OK 버튼 클릭 시 Lobby로 이동하는 콜백 바인딩
63 FOnMsgBoxOkDelegate OnOkDelegate;
64 OnOkDelegate.BindUObject(this, &UPopup_Evaluation::OnMsgBoxOk_MoveToLobby);
65
66 UPopupManager::Get(GetWorld())->ShowMsgBox(TEXT("Notice"), TEXT("Thank you For Playing"),
68 OnOkDelegate);
69 }
70}
71
73{
74 // Lobby 맵으로 이동
75 if (UWorld* World = GetWorld())
76 {
77 if ( UGameSoundManager* SoundMgr = GetGameInstance()->GetSubsystem<UGameSoundManager>())
78 {
79 SoundMgr->PlayBGM(EGameSoundType::BGM_Start);
80 }
81
82 UGameplayStatics::OpenLevel(World, FName("/Game/CustomContents/Maps/LobbyMap"));
83 }
84}
YiSan 전반에서 사용하는 공용 인터페이스를 선언합니다.
UGameSoundManager 클래스를 선언합니다.
게임 내 모든 사운드 재생을 관리하는 중앙 사운드 관리 서브시스템입니다.
팝업 관리자
virtual void NativeConstruct() override
TObjectPtr< class UEvaluationScenario > Panel_Listening
Listening 결과 패널 (탭 2)
void OnMsgBoxOk_MoveToLobby()
MsgBox OK 버튼 클릭 시 Lobby로 이동
TObjectPtr< class UEvaluationScenario > Panel_Writing
Writing 결과 패널 (탭 3)
TObjectPtr< class UEvaluationTotal > Panel_TotalResult
전체 결과 패널 (탭 0)
TObjectPtr< class UEvaluationScenario > Panel_Speaking
Speaking 결과 패널 (탭 4)
TObjectPtr< class UImageButton > Btn_Confirm
닫기 버튼
TObjectPtr< class UEvaluationScenario > Panel_Reading
Reading 결과 패널 (탭 1)
void OnClickClose()
닫기 버튼 클릭 핸들러
void InitPopup(const FResponseEvaluationResult &InEvaluationResult)
팝업 초기화 (FResponseEvaluationResultDelegate에서 받은 데이터 기반)
Evaluation 결과 응답 구조체입니다.
TArray< FScenarioResult > scenario_results
시나리오별 결과 구조체입니다.