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

텍스트 출력하는 다이얼로그 위젯입니다. 더 자세히 ...

#include <UDialogWidget.h>

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

Public 멤버 함수

void HideDialogImmediately ()
 
virtual void NativeConstruct () override
 위젯 초기화 및 기본 색상을 설정합니다.
 
virtual void NativeDestruct () override
 
virtual void NativeTick (const FGeometry &MyGeometry, float InDeltaTime) override
 
void OpenAnimation ()
 다이얼로그 오픈 애니메이션을 재생합니다
 
void ShowDialog (FString InString)
 대화 텍스트를 표시하고 강조 색상을 적용합니다.
 

Public 속성

TObjectPtr< class UBorder > DialogBorder
 
TObjectPtr< class UTextBlock > DialogText
 

Protected 속성

FLinearColor ActivateColor
 
bool bIsOpenAnim = false
 애니메이션 재생 중 여부
 
UWidgetAnimation * BlueprintOpenAnimation
 블루프린트에서 정의한 오픈 애니메이션
 
FLinearColor DeactivateColor
 
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
 목표 스케일
 

Private 멤버 함수

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

Private 속성

FTimerHandle HideTimerHandle
 Delay 태스크 핸들 (이전 태스크 취소용)
 

상세한 설명

텍스트 출력하는 다이얼로그 위젯입니다.

화면에 잠시 나타났다가 사라지는 토스트 메시지나 간단한 알림을 표시하는 데 사용됩니다.

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

멤버 함수 문서화

◆ HandleHideTimerExpired()

void UDialogWidget::HandleHideTimerExpired ( )
private

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

46{
47 if (!DialogBorder || !DialogText)
48 return;
49
50 HideTimerHandle.Invalidate();
51
52 DialogText->SetText(FText::GetEmpty());
53 DialogBorder->SetBrushColor(DeactivateColor);
54 DialogBorder->SetVisibility(ESlateVisibility::Hidden);
55}
TObjectPtr< class UBorder > DialogBorder
FTimerHandle HideTimerHandle
Delay 태스크 핸들 (이전 태스크 취소용)
TObjectPtr< class UTextBlock > DialogText
FLinearColor DeactivateColor

다음을 참조함 : DeactivateColor, DialogBorder, DialogText, HideTimerHandle.

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

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

◆ HideDialogImmediately()

void UDialogWidget::HideDialogImmediately ( )

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

140{
141 if (!DialogBorder || !DialogText)
142 return;
143
144 if (UWorld* World = GetWorld())
145 {
146 if (HideTimerHandle.IsValid())
147 World->GetTimerManager().ClearTimer(HideTimerHandle);
148 }
149
151}
void HandleHideTimerExpired()

다음을 참조함 : DialogBorder, DialogText, HandleHideTimerExpired(), HideTimerHandle.

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

◆ NativeConstruct()

void UDialogWidget::NativeConstruct ( )
overridevirtual

위젯 초기화 및 기본 색상을 설정합니다.

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

13{
14 Super::NativeConstruct();
15
16 if (DialogBorder)
17 {
18 DialogBorder->SetVisibility(ESlateVisibility::Hidden);
19 }
20}

다음을 참조함 : DialogBorder.

◆ NativeDestruct()

void UDialogWidget::NativeDestruct ( )
overridevirtual

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

23{
24 if (UWorld* World = GetWorld())
25 {
26 if (HideTimerHandle.IsValid())
27 {
28 World->GetTimerManager().ClearTimer(HideTimerHandle);
29 }
30 }
31
32 Super::NativeDestruct();
33}

다음을 참조함 : HideTimerHandle.

◆ NativeTick()

void UDialogWidget::NativeTick ( const FGeometry &  MyGeometry,
float  InDeltaTime 
)
overridevirtual

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

36{
37 Super::NativeTick(MyGeometry, InDeltaTime);
38
39 if (bIsOpenAnim)
40 {
41 UpdateAnimation(InDeltaTime);
42 }
43}
void UpdateAnimation(float InDeltaTime)
스크립트 오픈 애니메이션 업데이트
bool bIsOpenAnim
애니메이션 재생 중 여부

다음을 참조함 : bIsOpenAnim, UpdateAnimation().

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

◆ OpenAnimation()

void UDialogWidget::OpenAnimation ( )

다이얼로그 오픈 애니메이션을 재생합니다

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

58{
59 // 블루프린트에서 정의한 애니메이션이 있으면 해당 애니메이션 재생
61 {
62 PlayAnimation(BlueprintOpenAnimation);
63 return;
64 }
65
66 // 블루프린트 애니메이션이 없으면 기본 스크립트 애니메이션 사용
67 SetRenderTransformPivot(OpenPivot);
68 SetRenderScale(FVector2D(OpenStartScale, OpenStartScale));
69
70 bIsOpenAnim = OpenDuration > KINDA_SMALL_NUMBER;
71 OpenElapsedTime = 0.0f;
72
73 if (!bIsOpenAnim)
74 {
75 SetRenderScale(FVector2D(OpenTargetScale, OpenTargetScale));
76 }
77}
UWidgetAnimation * BlueprintOpenAnimation
블루프린트에서 정의한 오픈 애니메이션
FVector2D OpenPivot
애니메이션 중심점 (0~1 범위)
float OpenElapsedTime
경과 시간
float OpenStartScale
시작 스케일
float OpenTargetScale
목표 스케일
float OpenDuration
애니메이션 지속 시간

다음을 참조함 : bIsOpenAnim, BlueprintOpenAnimation, OpenDuration, OpenElapsedTime, OpenPivot, OpenStartScale, OpenTargetScale.

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

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

◆ ShowDialog()

void UDialogWidget::ShowDialog ( FString  InString)

대화 텍스트를 표시하고 강조 색상을 적용합니다.

매개변수
InString[in] 출력할 대화 문자열입니다.

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

101{
102 if (!DialogBorder || !DialogText)
103 return;
104
105 // 이전 타이머가 있으면 취소
106 if (UWorld* World = GetWorld())
107 {
108 if (HideTimerHandle.IsValid())
109 World->GetTimerManager().ClearTimer(HideTimerHandle);
110 }
111
112 DialogBorder->SetVisibility(ESlateVisibility::Visible);
113 DialogBorder->SetBrushColor(ActivateColor);
114 DialogText->SetText(FText::FromString(InString));
115
116 // 오픈 애니메이션 재생
118
119 // 5초 후 숨기는 타이머 설정 (약한 참조 사용)
120 if (UWorld* World = GetWorld())
121 {
122 TWeakObjectPtr<UDialogWidget> WeakThis(this);
123
124 World->GetTimerManager().SetTimer(
126 FTimerDelegate::CreateLambda([WeakThis]()
127 {
128 if (WeakThis.IsValid())
129 {
130 WeakThis->HandleHideTimerExpired();
131 }
132 }),
133 5.0f,
134 false
135 );
136 }
137}
FLinearColor ActivateColor
void OpenAnimation()
다이얼로그 오픈 애니메이션을 재생합니다

다음을 참조함 : ActivateColor, DialogBorder, DialogText, HideTimerHandle, OpenAnimation().

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

◆ UpdateAnimation()

void UDialogWidget::UpdateAnimation ( float  InDeltaTime)
private

스크립트 오픈 애니메이션 업데이트

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

80{
81 if (!bIsOpenAnim)
82 {
83 return;
84 }
85
86 OpenElapsedTime += InDeltaTime;
87
88 const float Alpha = FMath::Clamp(OpenElapsedTime / OpenDuration, 0.0f, 1.0f);
89 const float EasedAlpha = FEaseHelper::Ease(Alpha, OpenEaseType);
90 const float NewScale = FMath::Lerp(OpenStartScale, OpenTargetScale, EasedAlpha);
91
92 SetRenderScale(FVector2D(NewScale, NewScale));
93
94 if (Alpha >= 1.0f)
95 {
96 bIsOpenAnim = false;
97 }
98}
EEaseType OpenEaseType
Easing 타입
static float Ease(float Alpha, EEaseType Type)
Definition FEaseHelper.h:45

다음을 참조함 : bIsOpenAnim, FEaseHelper::Ease(), OpenDuration, OpenEaseType, OpenElapsedTime, OpenStartScale, OpenTargetScale.

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

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

멤버 데이터 문서화

◆ ActivateColor

FLinearColor UDialogWidget::ActivateColor
protected

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

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

◆ bIsOpenAnim

bool UDialogWidget::bIsOpenAnim = false
protected

애니메이션 재생 중 여부

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

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

◆ BlueprintOpenAnimation

UWidgetAnimation* UDialogWidget::BlueprintOpenAnimation
protected

블루프린트에서 정의한 오픈 애니메이션

설정된 경우 스크립트 애니메이션 대신 이 애니메이션을 재생합니다.

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

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

◆ DeactivateColor

FLinearColor UDialogWidget::DeactivateColor
protected

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

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

◆ DialogBorder

TObjectPtr<class UBorder> UDialogWidget::DialogBorder

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

다음에 의해서 참조됨 : HandleHideTimerExpired(), HideDialogImmediately(), NativeConstruct(), ShowDialog().

◆ DialogText

TObjectPtr<class UTextBlock> UDialogWidget::DialogText

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

다음에 의해서 참조됨 : HandleHideTimerExpired(), HideDialogImmediately(), ShowDialog().

◆ HideTimerHandle

FTimerHandle UDialogWidget::HideTimerHandle
private

Delay 태스크 핸들 (이전 태스크 취소용)

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

다음에 의해서 참조됨 : HandleHideTimerExpired(), HideDialogImmediately(), NativeDestruct(), ShowDialog().

◆ OpenDuration

float UDialogWidget::OpenDuration = 0.2f
protected

애니메이션 지속 시간

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

다음에 의해서 참조됨 : OpenAnimation(), UpdateAnimation().

◆ OpenEaseType

EEaseType UDialogWidget::OpenEaseType = EEaseType::EaseOutBack
protected

Easing 타입

애니메이션의 보간 곡선을 선택합니다. 기본값은 EaseOutBack (탄성 효과)

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

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

◆ OpenElapsedTime

float UDialogWidget::OpenElapsedTime = 0.0f
protected

경과 시간

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

다음에 의해서 참조됨 : OpenAnimation(), UpdateAnimation().

◆ OpenPivot

FVector2D UDialogWidget::OpenPivot = FVector2D(0.5f, 0.5f)
protected

애니메이션 중심점 (0~1 범위)

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

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

◆ OpenStartScale

float UDialogWidget::OpenStartScale = 0.8f
protected

시작 스케일

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

다음에 의해서 참조됨 : OpenAnimation(), UpdateAnimation().

◆ OpenTargetScale

float UDialogWidget::OpenTargetScale = 1.0f
protected

목표 스케일

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

다음에 의해서 참조됨 : OpenAnimation(), UpdateAnimation().


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