KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UPopup_DailyStudy.h
이 파일의 문서화 페이지로 가기
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#pragma once
4
5#include "CoreMinimal.h"
6#include "UBasePopup.h"
7#include "FDailyStudyResult.h"
8#include "EWordType.h"
9#include "NetworkData.h"
10#include "UCountDown.h"
11#include "UPopup_DailyStudy.generated.h"
12
19{
20 static constexpr float THINK_TIME = 3.0f;
21
22 static constexpr float NEXT_QUESTION = 1.5f;
23}
24
25// ========================================
26// UPopup_DailyStudy
27// ========================================
28
41UCLASS()
42class ONEPIECE_API UPopup_DailyStudy : public UBasePopup
43{
44 GENERATED_BODY()
45
46protected:
47 virtual void NativeConstruct() override;
48 virtual void NativeDestruct() override;
49
50public:
55 void InitPopup(const TArray<struct FWordData>& WordDataArray);
56
57 FString GetCurrentQuestionText() const;
58
59 void OnResponseSpeakingsJudges(const FResponseSpeakingJudes& JudgeResult);
60
61private:
63 void LoadCurQuestion();
64
66 void MoveToNextQuestion();
67
69 void ShowCorrectData(bool bIsCorrect);
70
72 UFUNCTION()
73 void OnClickClose();
74
75 UFUNCTION()
76 void OnAudioCapture(bool bIsRecording);
77
78 UFUNCTION()
79 void OnResponseListenAudio(FResponseListenAudio& Response, bool bWasSuccessful);
80
81 void StartThinkTimer();
82 void UpdateThinkTimer();
83 void OnThinkTimeFinished();
84
85 UFUNCTION()
86 void OnCountDownFinished();
87
88protected:
89 UPROPERTY(meta = (BindWidget))
90 TObjectPtr<class UTextBlock> Txt_CurScore;
91
92 UPROPERTY(meta = (BindWidget))
93 TObjectPtr<class UTextureButton> Btn_Close;
94
95 UPROPERTY(meta = (BindWidget))
96 TObjectPtr<class UCanvasPanel> Canvas_Question;
97
98 UPROPERTY(meta = (BindWidget))
99 TObjectPtr<class UBorder> Border_Question;
100
101 UPROPERTY(meta = (BindWidget), BlueprintReadOnly)
102 TObjectPtr<class URichTextBlock> Rich_Text;
103
104 UPROPERTY(meta = (BindWidget), BlueprintReadOnly)
105 TObjectPtr<class UTextBlock> Txt_SubTitle;
106
107 UPROPERTY(meta = (BindWidget))
108 TObjectPtr<class UTextBlock> Txt_Infomation;
109
110 UPROPERTY(meta = (BindWidget))
111 TObjectPtr<class UTextBlock> Txt_QuestionProgress;
112
113 UPROPERTY(meta = (BindWidget))
114 TObjectPtr<class UTextBlock> Txt_RemainTime;
115
116 UPROPERTY(meta = (BindWidget))
117 TObjectPtr<class UCircularProgressBar> ProgressBar_RemainTime;
118
119
120
121 UPROPERTY(meta = (BindWidget))
122 TObjectPtr<class UCanvasPanel> Canvas_Correct;
123
124 UPROPERTY(meta = (BindWidget))
125 TObjectPtr<class UImage> Img_Correct;
126
127 UPROPERTY(meta = (BindWidget))
128 TObjectPtr<class UTextBlock> Txt_Correct;
129
130
131 UPROPERTY(meta = (BindWidget))
132 TObjectPtr<class UCountDown> CountDown_Widget;
133
134private:
135 // ===================================================================
136 // Member Variables
137 // ===================================================================
138
140 TArray<struct FWordData> QuestionList;
141
143 TArray<FResponseSpeakingJudes> AnswerList;
144
146 int32 CurIndex = 0;
147
148 int32 CurrentScore = 0;
149 int32 CorrectAnswerCount = 0;
150
152 FTimerHandle NextTimerHandle;
153 FTimerHandle ThinkingTimerHandle;
154
155 float RemainingThinkTime = 0.f;
156
158 bool bLastAnswerCorrect = false;
159
160 // ===================================================================
161 // Media Player - 정답/오답 영상 재생
162 // ===================================================================
163
165 UPROPERTY()
166 TObjectPtr<class UMediaPlayer> MediaPlayer;
167
169 UPROPERTY()
170 TObjectPtr<class UMediaTexture> MediaTexture;
171
173 UPROPERTY(EditDefaultsOnly, Category = "Media")
174 TObjectPtr<class UMediaSource> CorrectVideoSource;
175
177 UPROPERTY(EditDefaultsOnly, Category = "Media")
178 TObjectPtr<class UMediaSource> WrongVideoSource;
179
181 UPROPERTY(EditDefaultsOnly, Category = "Media", meta = (ClampMin = "0.0"))
182 float VideoStartTime = 0.0f;
183
185 UPROPERTY(EditDefaultsOnly, Category = "Media", meta = (ClampMin = "0.0"))
186 float VideoEndTime = 3.0f;
187
189 FTimerHandle VideoCheckTimerHandle;
190
191private:
193 void PlayVideo(bool bIsCorrect);
194
196 void CheckVideoPlayback();
197
199 UFUNCTION()
200 void OnVideoFinished();
201};
EWordType 클래스를 선언합니다.
네트워크 요청과 응답에 사용되는 구조체 및 설정을 정의합니다.
모든 팝업의 기본 클래스
Definition UBasePopup.h:19
카운트다운 위젯
Definition UCountDown.h:27
Daily Study 팝업
심플한 텍스쳐 기반 버튼 위젯
Daily Study 설정 상수
static constexpr float THINK_TIME
static constexpr float NEXT_QUESTION
Speaking Questions 응답 구조체입니다.
단어 데이터 구조체입니다.