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

Speak Stage UI 위젯 더 자세히 ...

#include <USpeakWidget.h>

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

Public 멤버 함수

 USpeakWidget (const FObjectInitializer &ObjectInitializer)
 생성자
 
void SetWidgetVisibility (bool bShow)
 위젯 표시/숨김
 
void UpdateSpeakStage (class ASpeakStageActor *SpeakStage, class APlayerState *LocalPlayerState, int32 StepIndex)
 SpeakStage 상태를 UI에 반영
 

Protected 멤버 함수

virtual void NativeConstruct () override
 위젯 초기화
 

Protected 속성

TObjectPtr< class UTextBlock > CurrentProgress
 
TObjectPtr< class UTextBlock > CurrentQuestionText
 

상세한 설명

Speak Stage UI 위젯

현재 발화자, 질문, 진행률 등을 표시

필수 위젯 (BindWidget):

  • CurrentSpeakerText: 현재 발화자 이름
  • CurrentQuestionText: 현재 질문
  • ProgressText: 진행률 (예: 3/5)

선택 위젯 (BindWidgetOptional):

  • QueuePositionText: 대기 순서 표시

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

생성자 & 소멸자 문서화

◆ USpeakWidget()

USpeakWidget::USpeakWidget ( const FObjectInitializer &  ObjectInitializer)

생성자

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

11 : Super(ObjectInitializer)
12{
13}

멤버 함수 문서화

◆ NativeConstruct()

void USpeakWidget::NativeConstruct ( )
overrideprotectedvirtual

위젯 초기화

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

16{
17 Super::NativeConstruct();
18
19 // 초기 상태: 모든 텍스트 초기화
21 {
22 CurrentQuestionText->SetText(FText::FromString(TEXT("[1/5] Please wait for your turn")));
23 }
24}
TObjectPtr< class UTextBlock > CurrentQuestionText

다음을 참조함 : CurrentQuestionText.

◆ SetWidgetVisibility()

void USpeakWidget::SetWidgetVisibility ( bool  bShow)

위젯 표시/숨김

매개변수
bShowtrue면 표시, false면 숨김

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

65{
66 SetVisibility(bShow ? ESlateVisibility::Visible : ESlateVisibility::Collapsed );
67}

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

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

◆ UpdateSpeakStage()

void USpeakWidget::UpdateSpeakStage ( class ASpeakStageActor SpeakStage,
class APlayerState *  LocalPlayerState,
int32  StepIndex 
)

SpeakStage 상태를 UI에 반영

매개변수
SpeakStageSpeakStageActor 참조
LocalPlayerState로컬 플레이어의 PlayerState (내 턴인지 확인용)
StepIndex서버에서 전달받은 현재 단계 인덱스 (복제 타이밍 문제 해결)

이 함수를 주기적으로 호출하거나 RepNotify 이벤트에서 호출

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

31{
32 if (!SpeakStage)
33 {
34 PRINTLOG(TEXT("[SpeakWidget] UpdateSpeakStageUI - SpeakStage is null"));
35 return;
36 }
37
38 // 서버에서 전달받은 StepIndex를 사용하여 복제 타이밍 문제를 회피
39 const int32 TotalSteps = SpeakStage->GetTotalQuestions();
40
41 // PlayerState에서 직접 질문 가져오기
42 FString Question;
43 if (auto PS = Cast<ALingoPlayerState>(LocalPlayerState))
44 {
45 if (PS->SpeakScenarioData.speak_quest_data.IsValidIndex(StepIndex))
46 {
47 Question = PS->SpeakScenarioData.speak_quest_data[StepIndex].GetQuestionMessage();
48 }
49 }
50
51 if ( Question.IsEmpty())
52 {
54 PRINTLOG(TEXT("[SpeakWidget] Question is empty for StepIndex %d"), StepIndex);
55 return;
56 }
57
58 CurrentProgress->SetText(FText::FromString(FString::Printf(TEXT("%d/%d"), StepIndex + 1, TotalSteps )));
59 CurrentQuestionText->SetText( FText::FromString(*Question));
60
61 PRINTLOG(TEXT("[SpeakWidget] Updated to step %d/%d: %s"), StepIndex + 1, TotalSteps, *Question);
62}
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30
void SetWidgetVisibility(bool bShow)
위젯 표시/숨김
TObjectPtr< class UTextBlock > CurrentProgress

다음을 참조함 : CurrentProgress, CurrentQuestionText, ASpeakStageActor::GetTotalQuestions(), PRINTLOG, SetWidgetVisibility().

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

멤버 데이터 문서화

◆ CurrentProgress

TObjectPtr<class UTextBlock> USpeakWidget::CurrentProgress
protected

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

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

◆ CurrentQuestionText

TObjectPtr<class UTextBlock> USpeakWidget::CurrentQuestionText
protected

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

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


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