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

#include <Popup_Questionnaire.h>

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

Public 멤버 함수

 UPopup_Questionnaire (const FObjectInitializer &ObjectInitializer)
 
void InitPopup (const FQuestWriteInfo &QuestionData)
 팝업 초기화 (필요 시 API 확장)
 
virtual void NativeTick (const FGeometry &MyGeometry, float InDeltaTime) override
 
void OpenAnimation ()
 팝업 오픈 애니메이션을 재생합니다
 

Public 속성

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

Protected 멤버 함수

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

Protected 속성

bool bIsOpenAnim = false
 애니메이션 재생 중 여부
 
UWidgetAnimation * BlueprintOpenAnimation
 블루프린트에서 정의한 오픈 애니메이션
 
TObjectPtr< class UImageButtonBtn_Submit
 제출 버튼
 
float ItemSpacing = 20.0f
 인터뷰 항목 간 간격 (Spacer Height)
 
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
 목표 스케일
 
EPopupType PopupType
 
TSubclassOf< class UPopup_QuestionnaireItemQuestionnaireItemClass
 팝업 내에서 표시될 인터뷰 항목 위젯 클래스
 
TObjectPtr< class UScrollBox > ScrollBox
 스크롤 가능한 인터뷰 패널
 
TObjectPtr< class UVerticalBox > VerticalBox
 인터뷰 항목들이 추가될 VerticalBox
 

Private 멤버 함수

void OnClickClose ()
 
void OnClickSubmit ()
 
void OnItemAnswerStateChanged (bool bIsAnswered)
 항목의 답변 상태 변경 콜백
 
void OnResponseOcrExtract (FResponseWriteSubmit &ResponseData, bool bWasSuccessful)
 
void OnResponseWriteResult (FResponseWriteResult &ResponseData, bool bWasSuccessful)
 
void UpdateSubmitButtonState ()
 제출 버튼 활성화 상태 업데이트
 

Private 속성

TArray< TObjectPtr< class UPopup_QuestionnaireItem > > QuestionnaireItems
 생성된 설문 항목 위젯들
 
TArray< FWriteQuestionDataSavedQuestions
 저장된 인터뷰 질문 데이터
 
FString WriteImagePath = FPaths::ProjectSavedDir() / TEXT("WriteImage/")
 

상세한 설명

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

생성자 & 소멸자 문서화

◆ UPopup_Questionnaire()

UPopup_Questionnaire::UPopup_Questionnaire ( const FObjectInitializer &  ObjectInitializer)

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

19 : Super(ObjectInitializer)
20{
21 ConstructorHelpers::FClassFinder<UPopup_QuestionnaireItem> questionnaireItemRef(TEXT("/Game/CustomContents/UI/Widgets/Write/WBP_PopupQuestionnaireItem.WBP_PopupQuestionnaireItem_C"));
22 if (questionnaireItemRef.Succeeded())
23 {
24 QuestionnaireItemClass = questionnaireItemRef.Class;
25 }
26}
TSubclassOf< class UPopup_QuestionnaireItem > QuestionnaireItemClass
팝업 내에서 표시될 인터뷰 항목 위젯 클래스

다음을 참조함 : QuestionnaireItemClass.

멤버 함수 문서화

◆ InitPopup()

void UPopup_Questionnaire::InitPopup ( const FQuestWriteInfo QuestionData)

팝업 초기화 (필요 시 API 확장)

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

44{
45 // 질문 데이터 저장
47 {
48 lps->WriteQuestionData = QuestionData;
49 }
50 SavedQuestions = QuestionData.question;
51
52 // 기존 항목 제거
53 VerticalBox->ClearChildren();
54 QuestionnaireItems.Empty();
55
56 // 각 질문에 대해 항목 위젯 생성
57 for (int32 i = 0; i < SavedQuestions.Num(); ++i)
58 {
59 const FWriteQuestionData& Data = SavedQuestions[i];
60
61 // 인터뷰 항목 위젯 생성
62 UPopup_QuestionnaireItem* ItemWidget = CreateWidget<UPopup_QuestionnaireItem>(
63 GetWorld(), QuestionnaireItemClass);
64 ItemWidget->InitItem(Data);
65
66 // 답변 상태 변경 델리게이트 바인딩
68
69 // 배열에 저장
70 QuestionnaireItems.Add(ItemWidget);
71
72 VerticalBox->AddChildToVerticalBox(ItemWidget);
73
74 // 마지막 항목이 아니면 Spacer 추가
75 if (i < SavedQuestions.Num() - 1)
76 {
77 USpacer* Spacer = NewObject<USpacer>(this);
78 if (Spacer)
79 {
80 Spacer->SetSize(FVector2D(1.0f, ItemSpacing));
81 VerticalBox->AddChildToVerticalBox(Spacer);
82 }
83 }
84 }
85
86 // 초기 버튼 상태 업데이트
88}
static class ALingoPlayerState * GetLingoPlayerState(const UObject *WorldContextObject)
FOnAnswerStateChanged OnAnswerStateChanged
답변 상태 변경 시 호출되는 델리게이트
void InitItem(const FWriteQuestionData &Data)
질문 항목 초기화
float ItemSpacing
인터뷰 항목 간 간격 (Spacer Height)
TObjectPtr< class UVerticalBox > VerticalBox
인터뷰 항목들이 추가될 VerticalBox
TArray< FWriteQuestionData > SavedQuestions
저장된 인터뷰 질문 데이터
void UpdateSubmitButtonState()
제출 버튼 활성화 상태 업데이트
void OnItemAnswerStateChanged(bool bIsAnswered)
항목의 답변 상태 변경 콜백
TArray< TObjectPtr< class UPopup_QuestionnaireItem > > QuestionnaireItems
생성된 설문 항목 위젯들
TArray< FWriteQuestionData > question
Write 질문 및 정답 구조체입니다.

다음을 참조함 : ULingoGameHelper::GetLingoPlayerState(), UPopup_QuestionnaireItem::InitItem(), ItemSpacing, UPopup_QuestionnaireItem::OnAnswerStateChanged, OnItemAnswerStateChanged(), FQuestWriteInfo::question, QuestionnaireItemClass, QuestionnaireItems, SavedQuestions, UpdateSubmitButtonState(), VerticalBox.

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

◆ NativeConstruct()

void UPopup_Questionnaire::NativeConstruct ( )
overrideprotectedvirtual

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

29{
30 Super::NativeConstruct();
31
32 // 버튼 이벤트 바인딩
33 if (Btn_Submit)
34 {
35 Btn_Submit->OnButtonClickedEvent.RemoveDynamic(this, &UPopup_Questionnaire::OnClickSubmit);
36 Btn_Submit->OnButtonClickedEvent.AddDynamic(this, &UPopup_Questionnaire::OnClickSubmit);
37
38 // 초기 상태는 비활성화
39 Btn_Submit->SetIsEnabled(false);
40 }
41}
TObjectPtr< class UImageButton > Btn_Submit
제출 버튼

다음을 참조함 : Btn_Submit, OnClickSubmit().

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

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

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

91{
92 // PopupManager를 통해 팝업 닫기 (마우스 커서 처리 포함)
93 if (UPopupManager* PopupMgr = UPopupManager::Get(GetWorld()))
94 {
95 PopupMgr->HideCurrentPopup();
96 }
97}
팝업 관리자

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

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

◆ OnClickSubmit()

void UPopup_Questionnaire::OnClickSubmit ( )
private

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

100{
101 // 사진 파일 모으기
102 // 네트워크 전송
103 if (auto KLingoNetwork = UKLingoNetworkSystem::Get(GetWorld()))
104 {
105 // Question마다 png파일 1개로 보내기
106 TArray<FString> pngFiles;
107 TArray<FString> targetTexts;
108 for (const auto& question : SavedQuestions)
109 {
110 FString imagePath = WriteImagePath + FString::Printf(TEXT("Answer%d.PNG"), question.Id);
111 PRINTLOG(TEXT("[TEST] RequestOcrExtract - ImagePath: %s"), *imagePath);
112
113 pngFiles.Add(imagePath);
114 targetTexts.Add(question.answer_kor);
115 }
116
117 KLingoNetwork->RequestWriteSubmit(
118 pngFiles,
119 targetTexts,
120 FResponseWriteSubmitDelegate::CreateUObject(this, &UPopup_Questionnaire::OnResponseOcrExtract)
121 );
122
123 OnClickClose();
124 }
125 else
126 {
127 PRINTLOG(TEXT("UKLingoNetworkSystem not found!"));
128 }
129}
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30
void OnResponseOcrExtract(FResponseWriteSubmit &ResponseData, bool bWasSuccessful)

다음을 참조함 : OnClickClose(), OnResponseOcrExtract(), PRINTLOG, SavedQuestions, WriteImagePath.

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

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

◆ OnItemAnswerStateChanged()

void UPopup_Questionnaire::OnItemAnswerStateChanged ( bool  bIsAnswered)
private

항목의 답변 상태 변경 콜백

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

197{
198 // 항목의 답변 상태가 변경되었으므로 제출 버튼 상태 업데이트
200}

다음을 참조함 : UpdateSubmitButtonState().

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

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

◆ OnResponseOcrExtract()

void UPopup_Questionnaire::OnResponseOcrExtract ( FResponseWriteSubmit ResponseData,
bool  bWasSuccessful 
)
private

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

132{
133 if (bWasSuccessful)
134 {
135 PRINTLOG(TEXT("--- OCR Extract SUCCESS ---"));
136
138 {
139 lps->WriteSubmitResultData = ResponseData;
140 }
141
142 if (auto GS = Cast<ALingoGameState>(GetWorld()->GetGameState()))
143 {
144 // 네트워크 송신 (Host만)
145 if (UKLingoNetworkSystem* KLingoNetwork = UKLingoNetworkSystem::Get(GetWorld()))
146 {
147 FRequestWriteResult WriteRequest;
148 WriteRequest.room_id = GS->GetRoomId();
149 WriteRequest.user_id = Cast<APlayerControl>(GetOwningPlayer())->GetUserId();
150 WriteRequest.scenario_id = 1;
152 WriteRequest.state_type = 0;
153 WriteRequest.result_time = GS->GetTimeTaken();
154 WriteRequest.wrong_idx = GS->WrongReadAnswerList;
155
156 KLingoNetwork->RequestWriteResult(
157 WriteRequest,
158 FResponseWriteResultDelegate::CreateUObject(this, &UPopup_Questionnaire::OnResponseWriteResult)
159 );
160 }
161 }
162 }
163 else
164 {
165 PRINTLOG(TEXT("--- OCR Extract FAILED ---"));
166 }
167}
KLingo 서버와의 HTTP 요청을 중재하는 게임 인스턴스 서브시스템입니다.
static int32 GetStageTypeIndex(const EQuestType QuestType)
void OnResponseWriteResult(FResponseWriteResult &ResponseData, bool bWasSuccessful)
TArray< int32 > wrong_idx

다음을 참조함 : ULingoGameHelper::GetLingoPlayerState(), ULingoGameHelper::GetStageTypeIndex(), OnResponseWriteResult(), PRINTLOG, FRequestWriteResult::result_time, FRequestWriteResult::room_id, FRequestWriteResult::scenario_id, FRequestWriteResult::stage_type, FRequestWriteResult::state_type, FRequestWriteResult::user_id, Write, FRequestWriteResult::wrong_idx.

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

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

◆ OnResponseWriteResult()

void UPopup_Questionnaire::OnResponseWriteResult ( FResponseWriteResult ResponseData,
bool  bWasSuccessful 
)
private

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

170{
171 if (bWasSuccessful)
172 {
173 PRINTLOG(TEXT("--- OCR Extract SUCCESS ---"));
174
176 if (lps)
177 {
178 lps->WriteWholeResultData = ResponseData;
179 }
180
181 // 피드백 팝업 창 생성
182 if (auto Popup = UPopupManager::ShowPopupAs<UPopup_QuestionnaireResult>(GetWorld(), EPopupType::QuestionnaireResult))
183 {
184 // 팝업 초기화
185 Popup->InitPopup(lps->WriteSubmitResultData, ResponseData);
186
187 PRINTLOG(TEXT("[PopupTester] Result popup opened"));
188 }
189 }
190 else
191 {
192 PRINTLOG(TEXT("--- OCR Extract FAILED ---"));
193 }
194}
FResponseWriteSubmit WriteSubmitResultData
FResponseWriteResult WriteWholeResultData

다음을 참조함 : ULingoGameHelper::GetLingoPlayerState(), PRINTLOG, ALingoPlayerState::WriteSubmitResultData, ALingoPlayerState::WriteWholeResultData.

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

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

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

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

◆ UpdateSubmitButtonState()

void UPopup_Questionnaire::UpdateSubmitButtonState ( )
private

제출 버튼 활성화 상태 업데이트

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

203{
204 if (!Btn_Submit)
205 {
206 return;
207 }
208
209 // 모든 항목이 답변되었는지 확인
210 bool bAllAnswered = true;
211 for (const auto& Item : QuestionnaireItems)
212 {
213 if (Item && !Item->IsAnswered())
214 {
215 bAllAnswered = false;
216 break;
217 }
218 }
219
220 // 모든 항목이 답변되었으면 버튼 활성화, 아니면 비활성화
221 Btn_Submit->SetIsEnabled(bAllAnswered);
222}

다음을 참조함 : Btn_Submit, QuestionnaireItems.

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

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

멤버 데이터 문서화

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

TObjectPtr<class UImageButton> UPopup_Questionnaire::Btn_Submit
protected

제출 버튼

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

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

◆ ItemSpacing

float UPopup_Questionnaire::ItemSpacing = 20.0f
protected

인터뷰 항목 간 간격 (Spacer Height)

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

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

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

◆ PopupType

EPopupType UBasePopup::PopupType
protectedinherited

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

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

◆ QuestionnaireItemClass

TSubclassOf<class UPopup_QuestionnaireItem> UPopup_Questionnaire::QuestionnaireItemClass
protected

팝업 내에서 표시될 인터뷰 항목 위젯 클래스

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

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

◆ QuestionnaireItems

TArray<TObjectPtr<class UPopup_QuestionnaireItem> > UPopup_Questionnaire::QuestionnaireItems
private

생성된 설문 항목 위젯들

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

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

◆ SavedQuestions

TArray<FWriteQuestionData> UPopup_Questionnaire::SavedQuestions
private

저장된 인터뷰 질문 데이터

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

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

◆ ScrollBox

TObjectPtr<class UScrollBox> UPopup_Questionnaire::ScrollBox
protected

스크롤 가능한 인터뷰 패널

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

◆ VerticalBox

TObjectPtr<class UVerticalBox> UPopup_Questionnaire::VerticalBox
protected

인터뷰 항목들이 추가될 VerticalBox

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

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

◆ WriteImagePath

FString UPopup_Questionnaire::WriteImagePath = FPaths::ProjectSavedDir() / TEXT("WriteImage/")
private

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

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


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