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

메인 UI 위젯 더 자세히 ...

#include <UMainWidget.h>

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

Public 멤버 함수

 UMainWidget (const FObjectInitializer &ObjectInitializer)
 
bool CanShowSpeakWidget (ASpeakStageActor *&OutSpeakStage, ALingoPlayerState *&OutLocalPlayerState) const
 
void FadeIn (float Duration=0.5f)
 페이드 인 효과 시작 (화면이 밝아짐)
 
void FadeOut (float Duration=0.5f)
 페이드 아웃 효과 시작 (화면이 어두워짐)
 
class UFadeWidgetGetFadeWidget () const
 FadeWidget 가져오기
 
class UQuestInfoWidgetGetQuestInfoWidget () const
 
class UQuestOrderWidgetGetQuestOrderWidget () const
 
void SendChatMessage (FResponseUserMe sendUser, const FText &inMessage, int32 PlayerIndex)
 
void SetFocusOnChat ()
 
void SetMissionTimerState (bool bIsActive) const
 
void UpdateChatWidget ()
 
void UpdateHookState (bool bIsAiming)
 훅 인디케이터 상태 업데이트 (에임/비에임)
 
void UpdateRoomWidget (int32 InRoomLevel, int64 InRoomId)
 
void UpdateSpeakWidget (int32 StepIndex)
 
void UpdateStateWidget (int32 UserId, const FString &UserName)
 

Public 속성

TObjectPtr< class UCompassWidgetCompassWidget
 @breif Compass
 
TObjectPtr< class UVoiceRecordingVoiceRecording
 

Protected 멤버 함수

virtual void NativeConstruct () override
 위젯 초기화
 
virtual void NativeTick (const FGeometry &MyGeometry, float InDeltaTime) override
 매 프레임 호출되어 타이머를 업데이트합니다.
 

Protected 속성

TObjectPtr< class UChatWidgetChatWidget
 @breif Chat Widget
 
TObjectPtr< class UFadeWidgetFadeWidget
 페이드 인/아웃 위젯 (옵션, BindWidgetOptional)
 
TObjectPtr< class UImage > HookTargetIndicator
 훅 가능 대상 표시 위젯 (옵션, BindWidgetOptional)
 
TObjectPtr< class UPlayTimerPlayTimer
 플레이 타이머 위젯 (BindWidget)
 
TObjectPtr< class UQuestInfoWidgetQuestInfoWidget
 
TObjectPtr< class UQuestOrderWidgetQuestOrderWidget
 
TObjectPtr< class URoomWidgetRoomWidget
 
TObjectPtr< class USpeakWidgetSpeakWidget
 Speak Stage UI 위젯 (옵션, BindWidgetOptional)
 
TObjectPtr< class UStateWidgetStateWidget
 
TObjectPtr< class UWidgetSwitcher > WidgetSwitcher
 

Private 멤버 함수

void OnUpdateMissionTimerState (bool bIsActive, float TimeLimit)
 미션 타이머 상태 변경 핸들러
 
void UpdateTimerDisplay () const
 타이머 텍스트를 업데이트합니다.
 

Private 속성

TObjectPtr< class ALingoGameStateCachedGameState
 GameState 참조 캐싱
 
TObjectPtr< class UTexture2D > HookAimTexture
 훅 타겟 감지 시 이미지 (파란색)
 
TObjectPtr< class UTexture2D > HookNoAimTexture
 훅 타겟 미감지 시 이미지 (회색)
 
TSubclassOf< class UAutoDespawnItemItemWidgetClass
 아이템 위젯 클래스
 

상세한 설명

메인 UI 위젯

PlayTimer와 StateWidget을 포함하고 타이머 업데이트를 관리합니다.

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

생성자 & 소멸자 문서화

◆ UMainWidget()

UMainWidget::UMainWidget ( const FObjectInitializer &  ObjectInitializer)

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

35 : Super(ObjectInitializer)
36{
37 static ConstructorHelpers::FObjectFinder<UTexture2D> AimTextureFinder(AIM_TEXTURE_PATH);
38 if (AimTextureFinder.Succeeded())
39 HookAimTexture = AimTextureFinder.Object;
40
41 static ConstructorHelpers::FObjectFinder<UTexture2D> NoAimTextureFinder(NO_AIM_TEXTURE_PATH);
42 if (NoAimTextureFinder.Succeeded())
43 HookNoAimTexture = NoAimTextureFinder.Object;
44}
#define AIM_TEXTURE_PATH
#define NO_AIM_TEXTURE_PATH
TObjectPtr< class UTexture2D > HookNoAimTexture
훅 타겟 미감지 시 이미지 (회색)
TObjectPtr< class UTexture2D > HookAimTexture
훅 타겟 감지 시 이미지 (파란색)

다음을 참조함 : AIM_TEXTURE_PATH, HookAimTexture, HookNoAimTexture, NO_AIM_TEXTURE_PATH.

멤버 함수 문서화

◆ CanShowSpeakWidget()

bool UMainWidget::CanShowSpeakWidget ( ASpeakStageActor *&  OutSpeakStage,
ALingoPlayerState *&  OutLocalPlayerState 
) const

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

182{
183 OutSpeakStage = ULingoGameHelper::GetSpeakStageActor(this);
184 if (!OutSpeakStage)
185 return false;
186
187 ALingoPlayerState* CurrentSpeaker = OutSpeakStage->GetCurrentSpeaker();
188 if (!CurrentSpeaker)
189 return false;
190
191 APlayerController* LocalPC = GetWorld()->GetFirstPlayerController();
192 if (!LocalPC)
193 return false;
194
195 OutLocalPlayerState = LocalPC->GetPlayerState<ALingoPlayerState>();
196 if (!OutLocalPlayerState)
197 return false;
198
199 return (OutLocalPlayerState == CurrentSpeaker);
200}
FORCEINLINE class ALingoPlayerState * GetCurrentSpeaker() const
static class ASpeakStageActor * GetSpeakStageActor(const UObject *WorldContextObject)

다음을 참조함 : ASpeakStageActor::GetCurrentSpeaker(), ULingoGameHelper::GetSpeakStageActor().

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

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

◆ FadeIn()

void UMainWidget::FadeIn ( float  Duration = 0.5f)

페이드 인 효과 시작 (화면이 밝아짐)

매개변수
Duration페이드 인 지속 시간 (초)

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

219{
220 if (!FadeWidget)
221 {
222 PRINTLOG(TEXT("UMainWidget::FadeIn - FadeWidget is null"));
223 return;
224 }
225
226 FadeWidget->FadeIn(Duration);
227}
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30
TObjectPtr< class UFadeWidget > FadeWidget
페이드 인/아웃 위젯 (옵션, BindWidgetOptional)

다음을 참조함 : FadeWidget, PRINTLOG.

◆ FadeOut()

void UMainWidget::FadeOut ( float  Duration = 0.5f)

페이드 아웃 효과 시작 (화면이 어두워짐)

매개변수
Duration페이드 아웃 지속 시간 (초)

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

208{
209 if (!FadeWidget)
210 {
211 PRINTLOG(TEXT("UMainWidget::FadeOut - FadeWidget is null"));
212 return;
213 }
214
215 FadeWidget->FadeOut(Duration);
216}

다음을 참조함 : FadeWidget, PRINTLOG.

◆ GetFadeWidget()

class UFadeWidget * UMainWidget::GetFadeWidget ( ) const
inline

FadeWidget 가져오기

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

56{ return FadeWidget; }

◆ GetQuestInfoWidget()

class UQuestInfoWidget * UMainWidget::GetQuestInfoWidget ( ) const
inline

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

59{ return QuestInfoWidget; }
TObjectPtr< class UQuestInfoWidget > QuestInfoWidget

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

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

◆ GetQuestOrderWidget()

class UQuestOrderWidget * UMainWidget::GetQuestOrderWidget ( ) const
inline

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

62{ return QuestOrderWidget; }
TObjectPtr< class UQuestOrderWidget > QuestOrderWidget
Definition UMainWidget.h:97

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

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

◆ NativeConstruct()

void UMainWidget::NativeConstruct ( )
overrideprotectedvirtual

위젯 초기화

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

47{
48 Super::NativeConstruct();
49
50 // GameState 참조 가져오기
51 if (UWorld* World = GetWorld())
52 CachedGameState = World->GetGameState<ALingoGameState>();
53
54 if (auto BM = UBroadcastManager::Get(GetWorld()))
55 BM->OnUpdateMissionTimerState.AddDynamic(this, &UMainWidget::OnUpdateMissionTimerState);
56
57 StateWidget->InitWidget();
58 StateWidget->SetVisibility( ESlateVisibility::Collapsed);
59
60 RoomWidget->InitWidget();
61 RoomWidget->SetVisibility( ESlateVisibility::Collapsed);
62
63 QuestInfoWidget->SetVisibility( ESlateVisibility::Collapsed );
64
65 CompassWidget->SetVisibility( ESlateVisibility::Collapsed );
66
67 VoiceRecording->InitWidget();
68 VoiceRecording->SetVisibility( ESlateVisibility::Collapsed);
69
70 // 훅 타겟 인디케이터 초기 숨김
71 HookTargetIndicator->SetVisibility(ESlateVisibility::Hidden);
72
73 // SpeakWidget 초기 숨김 (BindWidgetOptional이므로 null 체크 필요)
74 SpeakWidget->SetWidgetVisibility(false);
76}
void OnUpdateMissionTimerState(bool bIsActive, float TimeLimit)
미션 타이머 상태 변경 핸들러
TObjectPtr< class UCompassWidget > CompassWidget
@breif Compass
TObjectPtr< class UImage > HookTargetIndicator
훅 가능 대상 표시 위젯 (옵션, BindWidgetOptional)
void SetMissionTimerState(bool bIsActive) const
TObjectPtr< class ALingoGameState > CachedGameState
GameState 참조 캐싱
TObjectPtr< class UVoiceRecording > VoiceRecording
TObjectPtr< class USpeakWidget > SpeakWidget
Speak Stage UI 위젯 (옵션, BindWidgetOptional)
Definition UMainWidget.h:94
TObjectPtr< class URoomWidget > RoomWidget
Definition UMainWidget.h:83
TObjectPtr< class UStateWidget > StateWidget
Definition UMainWidget.h:86

다음을 참조함 : CachedGameState, CompassWidget, HookTargetIndicator, OnUpdateMissionTimerState(), QuestInfoWidget, RoomWidget, SetMissionTimerState(), SpeakWidget, StateWidget, VoiceRecording.

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

◆ NativeTick()

void UMainWidget::NativeTick ( const FGeometry &  MyGeometry,
float  InDeltaTime 
)
overrideprotectedvirtual

매 프레임 호출되어 타이머를 업데이트합니다.

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

79{
80 Super::NativeTick(MyGeometry, InDeltaTime);
81
83}
void UpdateTimerDisplay() const
타이머 텍스트를 업데이트합니다.

다음을 참조함 : UpdateTimerDisplay().

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

◆ OnUpdateMissionTimerState()

void UMainWidget::OnUpdateMissionTimerState ( bool  bIsActive,
float  TimeLimit 
)
private

미션 타이머 상태 변경 핸들러

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

128{
129 if (!CachedGameState)
130 {
131 if (UWorld* World = GetWorld())
132 CachedGameState = World->GetGameState<ALingoGameState>();
133 }
134
135 // GameState의 RemainMissionTime 업데이트
136 if (CachedGameState && bIsActive && TimeLimit > 0.0f)
138
139 // if (!QuestInfoWidget)
140 // return;
141
142 // QuestInfoWidget->SetVisibility(bIsActive ? ESlateVisibility::Visible : ESlateVisibility::Collapsed );
143
144 // HookTargetIndicator가 존재하는 경우에만 visibility 설정
146 HookTargetIndicator->SetVisibility(bIsActive ? ESlateVisibility::Visible : ESlateVisibility::Collapsed);
147
148 if (bIsActive)
149 {
150 WidgetSwitcher->SetActiveWidgetIndex(0);
151 // QuestInfoWidget->InitQuestInfo();
152 }
153
154 SetMissionTimerState(bIsActive);
155}
void UpdateRemainMissionTime(const float InTimeLimit)
TObjectPtr< class UWidgetSwitcher > WidgetSwitcher
Definition UMainWidget.h:90

다음을 참조함 : CachedGameState, HookTargetIndicator, SetMissionTimerState(), ALingoGameState::UpdateRemainMissionTime(), WidgetSwitcher.

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

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

◆ SendChatMessage()

void UMainWidget::SendChatMessage ( FResponseUserMe  sendUser,
const FText &  inMessage,
int32  PlayerIndex 
)

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

109{
110 // PRINTLOG(TEXT("[SendChat] UMainWidget::SendChatMessage - %s"), *inMessage.ToString());
111 ChatWidget->SendMessage(sendUser, inMessage, PlayerIndex);
112}
TObjectPtr< class UChatWidget > ChatWidget
@breif Chat Widget

다음을 참조함 : ChatWidget.

◆ SetFocusOnChat()

void UMainWidget::SetFocusOnChat ( )

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

115{
116 ChatWidget->FocusInput();
117}

다음을 참조함 : ChatWidget.

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

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

◆ SetMissionTimerState()

void UMainWidget::SetMissionTimerState ( bool  bIsActive) const

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

86{
87 PlayTimer->SetVisibility(bIsActive ? ESlateVisibility::Visible : ESlateVisibility::Hidden);
88}
TObjectPtr< class UPlayTimer > PlayTimer
플레이 타이머 위젯 (BindWidget)
Definition UMainWidget.h:80

다음을 참조함 : PlayTimer.

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

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

◆ UpdateChatWidget()

void UMainWidget::UpdateChatWidget ( )

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

203{
204 ChatWidget->SetVisibility(ESlateVisibility::Visible);
205}

다음을 참조함 : ChatWidget.

◆ UpdateHookState()

void UMainWidget::UpdateHookState ( bool  bIsAiming)

훅 인디케이터 상태 업데이트 (에임/비에임)

매개변수
bIsAimingtrue면 타겟 감지됨(파란색), false면 비감지(회색)

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

158{
159 if (!HookTargetIndicator || !HookTargetIndicator->IsVisible() )
160 return;
161
162 // 에임 상태에 따라 이미지 변경
163 HookTargetIndicator->SetBrushFromTexture(bIsAiming ? HookAimTexture : HookNoAimTexture );
164}

다음을 참조함 : HookAimTexture, HookNoAimTexture, HookTargetIndicator.

◆ UpdateRoomWidget()

void UMainWidget::UpdateRoomWidget ( int32  InRoomLevel,
int64  InRoomId 
)

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

100{
101 if ( InRoomId <= 0 )
102 return;
103
104 RoomWidget->SetVisibility(ESlateVisibility::Visible);
105 RoomWidget->UpdateRoomInfo(InRoomLevel, InRoomId);
106}

다음을 참조함 : RoomWidget.

◆ UpdateSpeakWidget()

void UMainWidget::UpdateSpeakWidget ( int32  StepIndex)

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

167{
168 WidgetSwitcher->SetActiveWidgetIndex(1);
169
170 ASpeakStageActor* SpeakStage = nullptr;
171 ALingoPlayerState* LocalPlayerState = nullptr;
172
173 const bool bCanShow =
174 CanShowSpeakWidget(SpeakStage, LocalPlayerState);
175 SpeakWidget->SetWidgetVisibility(bCanShow);
176
177 if ( bCanShow )
178 SpeakWidget->UpdateSpeakStage(SpeakStage, LocalPlayerState, StepIndex);
179}
Speak Stage 시스템
bool CanShowSpeakWidget(ASpeakStageActor *&OutSpeakStage, ALingoPlayerState *&OutLocalPlayerState) const

다음을 참조함 : CanShowSpeakWidget(), SpeakWidget, WidgetSwitcher.

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

◆ UpdateStateWidget()

void UMainWidget::UpdateStateWidget ( int32  UserId,
const FString &  UserName 
)

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

91{
92 if ( UserName == "" )
93 return;
94
95 StateWidget->SetVisibility(ESlateVisibility::Visible);
96 StateWidget->UpdateUserName(UserId, UserName);
97}

다음을 참조함 : StateWidget.

◆ UpdateTimerDisplay()

void UMainWidget::UpdateTimerDisplay ( ) const
private

타이머 텍스트를 업데이트합니다.

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

120{
121 if (!CachedGameState || !PlayTimer)
122 return;
123
124 PlayTimer->UpdateTimerText( CachedGameState->GetRemainMissionTime());
125}

다음을 참조함 : CachedGameState, PlayTimer.

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

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

멤버 데이터 문서화

◆ CachedGameState

TObjectPtr<class ALingoGameState> UMainWidget::CachedGameState
private

GameState 참조 캐싱

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

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

◆ ChatWidget

TObjectPtr<class UChatWidget> UMainWidget::ChatWidget
protected

@breif Chat Widget

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

다음에 의해서 참조됨 : SendChatMessage(), SetFocusOnChat(), UpdateChatWidget().

◆ CompassWidget

TObjectPtr<class UCompassWidget> UMainWidget::CompassWidget

@breif Compass

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

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

◆ FadeWidget

TObjectPtr<class UFadeWidget> UMainWidget::FadeWidget
protected

페이드 인/아웃 위젯 (옵션, BindWidgetOptional)

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

다음에 의해서 참조됨 : FadeIn(), FadeOut().

◆ HookAimTexture

TObjectPtr<class UTexture2D> UMainWidget::HookAimTexture
private

훅 타겟 감지 시 이미지 (파란색)

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

다음에 의해서 참조됨 : UMainWidget(), UpdateHookState().

◆ HookNoAimTexture

TObjectPtr<class UTexture2D> UMainWidget::HookNoAimTexture
private

훅 타겟 미감지 시 이미지 (회색)

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

다음에 의해서 참조됨 : UMainWidget(), UpdateHookState().

◆ HookTargetIndicator

TObjectPtr<class UImage> UMainWidget::HookTargetIndicator
protected

훅 가능 대상 표시 위젯 (옵션, BindWidgetOptional)

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

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

◆ ItemWidgetClass

TSubclassOf<class UAutoDespawnItem> UMainWidget::ItemWidgetClass
private

아이템 위젯 클래스

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

◆ PlayTimer

TObjectPtr<class UPlayTimer> UMainWidget::PlayTimer
protected

플레이 타이머 위젯 (BindWidget)

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

다음에 의해서 참조됨 : SetMissionTimerState(), UpdateTimerDisplay().

◆ QuestInfoWidget

TObjectPtr<class UQuestInfoWidget> UMainWidget::QuestInfoWidget
protected

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

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

◆ QuestOrderWidget

TObjectPtr<class UQuestOrderWidget> UMainWidget::QuestOrderWidget
protected

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

◆ RoomWidget

TObjectPtr<class URoomWidget> UMainWidget::RoomWidget
protected

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

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

◆ SpeakWidget

TObjectPtr<class USpeakWidget> UMainWidget::SpeakWidget
protected

Speak Stage UI 위젯 (옵션, BindWidgetOptional)

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

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

◆ StateWidget

TObjectPtr<class UStateWidget> UMainWidget::StateWidget
protected

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

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

◆ VoiceRecording

TObjectPtr<class UVoiceRecording> UMainWidget::VoiceRecording

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

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

◆ WidgetSwitcher

TObjectPtr<class UWidgetSwitcher> UMainWidget::WidgetSwitcher
protected

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

다음에 의해서 참조됨 : OnUpdateMissionTimerState(), UpdateSpeakWidget().


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