KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
UAutoDespawnItem.cpp
이 파일의 문서화 페이지로 가기
1// Copyright (c) 2025 Doppleddiggong. All rights reserved. Unauthorized copying, modification, or distribution of this file, via any medium is strictly prohibited. Proprietary and confidential.
2
7#include "UAutoDespawnItem.h"
8#include "UResultStatWidget.h"
9#include "Animation/WidgetAnimation.h"
10#include "GameLogging.h"
11
13{
14 Super::NativeConstruct();
15
16 UWorld* World = GetWorld();
17 if (!World)
18 {
19 PRINTLOG( TEXT("UAutoDespawnItem::NativeConstruct - World is null!"));
20 return;
21 }
22
23 // Lifetime 후 FadeOut 시작
24 World->GetTimerManager().SetTimer(
26 this,
29 false
30 );
31}
32
34{
35 // 타이머 정리
36 if (UWorld* World = GetWorld())
37 {
38 if (LifetimeTimer.IsValid())
39 {
40 World->GetTimerManager().ClearTimer(LifetimeTimer);
41 }
42 }
43
44 Super::NativeDestruct();
45}
46
48{
49 ItemWidget->InitData(InData);
50}
51
53{
54 if (FadeOutAnim)
55 {
56 PlayAnimation(FadeOutAnim);
57
58 // 애니메이션 완료 콜백 바인딩
59 FWidgetAnimationDynamicEvent AnimFinishedDelegate;
60 AnimFinishedDelegate.BindDynamic(this, &UAutoDespawnItem::RemoveSelf);
61 BindToAnimationFinished(FadeOutAnim, AnimFinishedDelegate);
62 }
63 else
64 {
65 // 애니메이션 없으면 바로 제거
66 RemoveSelf();
67 }
68}
69
71{
72 // 이미 제거 중이면 리턴
73 if (!IsInViewport())
74 return;
75
76 RemoveFromParent();
77}
YiSan 전반에서 사용하는 공용 인터페이스를 선언합니다.
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30
virtual void NativeConstruct() override
void StartFadeOut()
FadeOut 시작
void RemoveSelf()
위젯 제거
void InitData(const FResultStatData &InData)
TObjectPtr< class UResultStatWidget > ItemWidget
결과 통계 위젯 (Grade, Score, Rate, Symbol 표시)
FTimerHandle LifetimeTimer
Lifetime 타이머 핸들
virtual void NativeDestruct() override
float Lifetime
아이템 생존 시간 (초)
TObjectPtr< class UWidgetAnimation > FadeOutAnim
FadeOut 애니메이션 (BindWidgetAnim)
Result Stat 위젯 통합 데이터 구조 위젯 타입, 색상 스타일, 각 타입별 데이터를 통합 관리