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

Evaluation 결과를 표시하는 팝업 더 자세히 ...

#include <UPopup_Evaluation.h>

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

Public 멤버 함수

void InitPopup (const FResponseEvaluationResult &InEvaluationResult)
 팝업 초기화 (FResponseEvaluationResultDelegate에서 받은 데이터 기반)
 
virtual void NativeConstruct () override
 
virtual void NativeTick (const FGeometry &MyGeometry, float InDeltaTime) override
 
void OpenAnimation ()
 팝업 오픈 애니메이션을 재생합니다
 

Public 속성

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

Protected 멤버 함수

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

Protected 속성

bool bIsOpenAnim = false
 애니메이션 재생 중 여부
 
UWidgetAnimation * BlueprintOpenAnimation
 블루프린트에서 정의한 오픈 애니메이션
 
TObjectPtr< class UImageButtonBtn_Confirm
 닫기 버튼
 
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 UEvaluationScenarioPanel_Listening
 Listening 결과 패널 (탭 2)
 
TObjectPtr< class UEvaluationScenarioPanel_Reading
 Reading 결과 패널 (탭 1)
 
TObjectPtr< class UEvaluationScenarioPanel_Speaking
 Speaking 결과 패널 (탭 4)
 
TObjectPtr< class UEvaluationTotalPanel_TotalResult
 전체 결과 패널 (탭 0)
 
TObjectPtr< class UEvaluationScenarioPanel_Writing
 Writing 결과 패널 (탭 3)
 
EPopupType PopupType
 

Private 멤버 함수

void OnClickClose ()
 닫기 버튼 클릭 핸들러
 
void OnMsgBoxOk_MoveToLobby ()
 MsgBox OK 버튼 클릭 시 Lobby로 이동
 

상세한 설명

Evaluation 결과를 표시하는 팝업

TabButtonGroup과 WidgetSwitcher를 사용하여 5개의 탭을 제공합니다:

  • 0: Total Result (전체 결과)
  • 1: Reading (읽기 영역)
  • 2: Listening (듣기 영역)
  • 3: Writing (쓰기 영역)
  • 4: Speaking (말하기 영역)

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

멤버 함수 문서화

◆ InitPopup()

void UPopup_Evaluation::InitPopup ( const FResponseEvaluationResult InEvaluationResult)

팝업 초기화 (FResponseEvaluationResultDelegate에서 받은 데이터 기반)

매개변수
[in]InEvaluationResultEvaluation 결과 데이터

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

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}
TObjectPtr< class UEvaluationScenario > Panel_Listening
Listening 결과 패널 (탭 2)
TObjectPtr< class UEvaluationScenario > Panel_Writing
Writing 결과 패널 (탭 3)
TObjectPtr< class UEvaluationTotal > Panel_TotalResult
전체 결과 패널 (탭 0)
TObjectPtr< class UEvaluationScenario > Panel_Speaking
Speaking 결과 패널 (탭 4)
TObjectPtr< class UEvaluationScenario > Panel_Reading
Reading 결과 패널 (탭 1)
시나리오별 결과 구조체입니다.

다음을 참조함 : Panel_Listening, Panel_Reading, Panel_Speaking, Panel_TotalResult, Panel_Writing, FResponseEvaluationResult::scenario_results, FResponseEvaluationResult::total_result.

◆ NativeConstruct()

void UPopup_Evaluation::NativeConstruct ( )
overridevirtual

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

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}
TObjectPtr< class UImageButton > Btn_Confirm
닫기 버튼
void OnClickClose()
닫기 버튼 클릭 핸들러

다음을 참조함 : Btn_Confirm, OnClickClose().

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

◆ 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_Evaluation::OnClickClose ( )
private

닫기 버튼 클릭 핸들러

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

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}
팝업 관리자
void OnMsgBoxOk_MoveToLobby()
MsgBox OK 버튼 클릭 시 Lobby로 이동

다음을 참조함 : OK, OnMsgBoxOk_MoveToLobby().

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

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

◆ OnMsgBoxOk_MoveToLobby()

void UPopup_Evaluation::OnMsgBoxOk_MoveToLobby ( )
private

MsgBox OK 버튼 클릭 시 Lobby로 이동

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

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}
게임 내 모든 사운드 재생을 관리하는 중앙 사운드 관리 서브시스템입니다.

다음을 참조함 : BGM_Start.

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

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

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

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

멤버 데이터 문서화

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

TObjectPtr<class UImageButton> UPopup_Evaluation::Btn_Confirm
protected

닫기 버튼

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

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

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

◆ Panel_Listening

TObjectPtr<class UEvaluationScenario> UPopup_Evaluation::Panel_Listening
protected

Listening 결과 패널 (탭 2)

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

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

◆ Panel_Reading

TObjectPtr<class UEvaluationScenario> UPopup_Evaluation::Panel_Reading
protected

Reading 결과 패널 (탭 1)

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

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

◆ Panel_Speaking

TObjectPtr<class UEvaluationScenario> UPopup_Evaluation::Panel_Speaking
protected

Speaking 결과 패널 (탭 4)

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

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

◆ Panel_TotalResult

TObjectPtr<class UEvaluationTotal> UPopup_Evaluation::Panel_TotalResult
protected

전체 결과 패널 (탭 0)

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

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

◆ Panel_Writing

TObjectPtr<class UEvaluationScenario> UPopup_Evaluation::Panel_Writing
protected

Writing 결과 패널 (탭 3)

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

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

◆ PopupType

EPopupType UBasePopup::PopupType
protectedinherited

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

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


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