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

토스트 메시지와 같은 간단한 다이얼로그 위젯의 표시를 관리하는 LocalPlayer 서브시스템입니다. 더 자세히 ...

#include <UDialogManager.h>

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

Public 멤버 함수

 UDialogManager ()
 
 DEFINE_LOCALPLAYER_SUBSYSTEM_GETTER_INLINE (UDialogManager)
 
virtual void Deinitialize () override
 
void HideToastImmediately ()
 활성 토스트 메시지를 즉시 숨깁니다.
 
void ShowToast (const FString &Message)
 

Protected 멤버 함수

void EnsureWidgetForWorld (UWorld *World)
 현재 월드에 위젯이 없으면 생성하고 뷰포트에 부착합니다.
 

Protected 속성

TObjectPtr< class UDialogWidgetDialogWidget
 
TSubclassOf< class UDialogWidgetDialogWidgetClass
 

상세한 설명

토스트 메시지와 같은 간단한 다이얼로그 위젯의 표시를 관리하는 LocalPlayer 서브시스템입니다.

게임 내 여러 곳에서 일관된 방식으로 다이얼로그를 요청하고 표시할 수 있는 중앙 관리 지점을 제공합니다.

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

생성자 & 소멸자 문서화

◆ UDialogManager()

UDialogManager::UDialogManager ( )

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

24{
26}
#define DIALOGWIDGET_PATH
TSubclassOf< class UDialogWidget > DialogWidgetClass
static T * LoadAsset(const TCHAR *Path)

다음을 참조함 : DIALOGWIDGET_PATH, DialogWidgetClass, FComponentHelper::LoadAsset().

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

멤버 함수 문서화

◆ DEFINE_LOCALPLAYER_SUBSYSTEM_GETTER_INLINE()

UDialogManager::DEFINE_LOCALPLAYER_SUBSYSTEM_GETTER_INLINE ( UDialogManager  )

◆ Deinitialize()

void UDialogManager::Deinitialize ( )
overridevirtual

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

29{
30 // 위젯이 있으면 정리
31 if (DialogWidget)
32 {
33 // 타이머 즉시 정리 (NativeDestruct보다 먼저)
34 DialogWidget->HideDialogImmediately();
35
36 // 뷰포트에서 제거
37 if (DialogWidget->IsInViewport())
38 {
39 DialogWidget->RemoveFromParent();
40 }
41
42 // 참조 해제
43 DialogWidget = nullptr;
44 }
45
46 Super::Deinitialize();
47}
TObjectPtr< class UDialogWidget > DialogWidget

다음을 참조함 : DialogWidget.

◆ EnsureWidgetForWorld()

void UDialogManager::EnsureWidgetForWorld ( UWorld *  World)
protected

현재 월드에 위젯이 없으면 생성하고 뷰포트에 부착합니다.

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

50{
51 if (World == nullptr || !World->IsGameWorld())
52 return;
53
54 // 위젯이 유효하고 같은 월드이며, 뷰포트에 추가되어 있는지 확인
55 if (IsValid(DialogWidget) &&
56 DialogWidget->GetWorld() == World &&
57 DialogWidget->IsInViewport())
58 {
59 return;
60 }
61
62 // 기존 위젯이 있으면 정리
63 if (DialogWidget)
64 {
65 if (DialogWidget->IsInViewport())
66 DialogWidget->RemoveFromParent();
67
68 DialogWidget = nullptr;
69 }
70
71 ULocalPlayer* LocalPlayer = GetLocalPlayer();
72 if (LocalPlayer == nullptr)
73 return;
74
75 APlayerController* PC = LocalPlayer->GetPlayerController(World);
76 if (PC == nullptr)
77 return;
78
80 return;
81
82 UDialogWidget* NewWidget = CreateWidget<UDialogWidget>(PC, DialogWidgetClass);
83 if (!NewWidget)
84 return;
85
86 NewWidget->AddToViewport(GameLayer::ToastManager);
87 DialogWidget = NewWidget;
88}
텍스트 출력하는 다이얼로그 위젯입니다.
static const int32 ToastManager
Definition Onepiece.h:13

다음을 참조함 : DialogWidget, DialogWidgetClass, GameLayer::ToastManager.

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

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

◆ HideToastImmediately()

void UDialogManager::HideToastImmediately ( )

활성 토스트 메시지를 즉시 숨깁니다.

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

106{
107 UWorld* World = GetWorld();
108 if (!World)
109 return;
110
111 if (!DialogWidget)
112 return;
113
114 if (DialogWidget->GetWorld() != World)
115 return;
116
117 DialogWidget->HideDialogImmediately();
118}

다음을 참조함 : DialogWidget.

◆ ShowToast()

void UDialogManager::ShowToast ( const FString &  Message)

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

91{
92 if (Message.IsEmpty())
93 return;
94
95 UWorld* World = GetWorld();
96 if (!World)
97 return;
98
100
101 if (DialogWidget)
102 DialogWidget->ShowDialog(Message);
103}
void EnsureWidgetForWorld(UWorld *World)
현재 월드에 위젯이 없으면 생성하고 뷰포트에 부착합니다.

다음을 참조함 : DialogWidget, EnsureWidgetForWorld().

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

멤버 데이터 문서화

◆ DialogWidget

TObjectPtr<class UDialogWidget> UDialogManager::DialogWidget
protected

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

다음에 의해서 참조됨 : Deinitialize(), EnsureWidgetForWorld(), HideToastImmediately(), ShowToast().

◆ DialogWidgetClass

TSubclassOf<class UDialogWidget> UDialogManager::DialogWidgetClass
protected

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

다음에 의해서 참조됨 : UDialogManager(), EnsureWidgetForWorld().


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