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

탭 선택 인디케이터 위젯. 더 자세히 ...

#include <UTabIndicator.h>

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

Public 멤버 함수

 DECLARE_DYNAMIC_MULTICAST_DELEGATE (FOnMoveCompleted)
 이동 완료 이벤트 델리게이트
 
void MoveTo (FVector2D InTargetPosition, bool InAnimate=true)
 목표 위치로 이동합니다.
 
void SetAnimationSpeed (float Speed)
 애니메이션 속도를 설정합니다.
 

Public 속성

FOnMoveCompleted OnMoveCompleted
 이동 애니메이션이 완료되었을 때 발생하는 이벤트
 

Protected 멤버 함수

virtual void NativeDestruct () override
 

Private 멤버 함수

class UCanvasPanelSlot * GetCanvasSlot () const
 현재 위젯의 CanvasPanelSlot을 가져옵니다.
 
void TickAnimation ()
 애니메이션을 위한 Tick 함수
 

Private 속성

float AnimationSpeed = 0.15f
 애니메이션 속도 (초 단위)
 
float AnimElapsedTime = 0.0f
 애니메이션 진행 시간
 
FVector2D AnimStartPosition = FVector2D::ZeroVector
 애니메이션 시작 위치
 
FVector2D AnimTargetPosition = FVector2D::ZeroVector
 애니메이션 목표 위치
 
FTimerHandle AnimTimerHandle
 애니메이션을 위한 타이머 핸들
 
bool bIsAnimating = false
 애니메이션 진행 중 여부
 

상세한 설명

탭 선택 인디케이터 위젯.

선택된 탭으로 부드럽게 이동하는 애니메이션을 제공합니다.

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

멤버 함수 문서화

◆ DECLARE_DYNAMIC_MULTICAST_DELEGATE()

UTabIndicator::DECLARE_DYNAMIC_MULTICAST_DELEGATE ( FOnMoveCompleted  )

이동 완료 이벤트 델리게이트

◆ GetCanvasSlot()

UCanvasPanelSlot * UTabIndicator::GetCanvasSlot ( ) const
private

현재 위젯의 CanvasPanelSlot을 가져옵니다.

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

99{
100 return Cast<UCanvasPanelSlot>(Slot);
101}

다음에 의해서 참조됨 : MoveTo(), TickAnimation().

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

◆ MoveTo()

void UTabIndicator::MoveTo ( FVector2D  InTargetPosition,
bool  InAnimate = true 
)

목표 위치로 이동합니다.

매개변수
[in]InTargetPosition이동할 목표 위치 (부모 기준 상대 좌표)
[in]InAnimate애니메이션 여부 (false면 즉시 이동)

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

20{
21 UCanvasPanelSlot* CanvasSlot = GetCanvasSlot();
22 if (!CanvasSlot)
23 return;
24
25 // 애니메이션 없이 즉시 이동
26 if (!InAnimate || AnimationSpeed <= 0.0f)
27 {
28 CanvasSlot->SetPosition(InTargetPosition);
29 bIsAnimating = false;
30
31 // 이동 완료 이벤트 발생
32 OnMoveCompleted.Broadcast();
33 return;
34 }
35
36 // 애니메이션으로 이동
37 AnimStartPosition = CanvasSlot->GetPosition();
38 AnimTargetPosition = InTargetPosition;
39 AnimElapsedTime = 0.0f;
40 bIsAnimating = true;
41
42 // 타이머 시작 (기존 타이머가 있다면 제거)
43 if (GetWorld())
44 {
45 GetWorld()->GetTimerManager().ClearTimer(AnimTimerHandle);
46 GetWorld()->GetTimerManager().SetTimer(
48 this,
50 0.016f, // ~60 FPS
51 true
52 );
53 }
54}
FVector2D AnimStartPosition
애니메이션 시작 위치
float AnimationSpeed
애니메이션 속도 (초 단위)
FVector2D AnimTargetPosition
애니메이션 목표 위치
FOnMoveCompleted OnMoveCompleted
이동 애니메이션이 완료되었을 때 발생하는 이벤트
FTimerHandle AnimTimerHandle
애니메이션을 위한 타이머 핸들
float AnimElapsedTime
애니메이션 진행 시간
void TickAnimation()
애니메이션을 위한 Tick 함수
bool bIsAnimating
애니메이션 진행 중 여부
class UCanvasPanelSlot * GetCanvasSlot() const
현재 위젯의 CanvasPanelSlot을 가져옵니다.

다음을 참조함 : AnimationSpeed, AnimElapsedTime, AnimStartPosition, AnimTargetPosition, AnimTimerHandle, bIsAnimating, GetCanvasSlot(), OnMoveCompleted, TickAnimation().

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

◆ NativeDestruct()

void UTabIndicator::NativeDestruct ( )
overrideprotectedvirtual

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

9{
10 Super::NativeDestruct();
11
12 // 타이머 정리
13 if (GetWorld())
14 {
15 GetWorld()->GetTimerManager().ClearTimer(AnimTimerHandle);
16 }
17}

다음을 참조함 : AnimTimerHandle.

◆ SetAnimationSpeed()

void UTabIndicator::SetAnimationSpeed ( float  Speed)

애니메이션 속도를 설정합니다.

매개변수
[in]Speed애니메이션 속도 (초 단위)

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

57{
58 AnimationSpeed = FMath::Max(0.01f, Speed);
59}

다음을 참조함 : AnimationSpeed.

◆ TickAnimation()

void UTabIndicator::TickAnimation ( )
private

애니메이션을 위한 Tick 함수

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

62{
63 // Canvas Slot 유효성 검사
64 UCanvasPanelSlot* CanvasSlot = GetCanvasSlot();
65 if (!CanvasSlot)
66 {
67 if (GetWorld())
68 GetWorld()->GetTimerManager().ClearTimer(AnimTimerHandle);
69
70 bIsAnimating = false;
71 return;
72 }
73
74 // 애니메이션 진행
75 AnimElapsedTime += 0.016f; // ~60 FPS 기준
76 const float Alpha = FMath::Clamp(AnimElapsedTime / AnimationSpeed, 0.0f, 1.0f);
77
78 // Lerp를 사용한 부드러운 이동
79 FVector2D CurPosition = FMath::Lerp(AnimStartPosition, AnimTargetPosition, Alpha);
80 CanvasSlot->SetPosition(CurPosition);
81
82 // 애니메이션 완료 확인
83 if (Alpha >= 1.0f)
84 {
85 // 타이머 정지
86 if (GetWorld())
87 {
88 GetWorld()->GetTimerManager().ClearTimer(AnimTimerHandle);
89 }
90
91 bIsAnimating = false;
92
93 // 이동 완료 이벤트 발생
94 OnMoveCompleted.Broadcast();
95 }
96}

다음을 참조함 : AnimationSpeed, AnimElapsedTime, AnimStartPosition, AnimTargetPosition, AnimTimerHandle, bIsAnimating, GetCanvasSlot(), OnMoveCompleted.

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

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

멤버 데이터 문서화

◆ AnimationSpeed

float UTabIndicator::AnimationSpeed = 0.15f
private

애니메이션 속도 (초 단위)

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

다음에 의해서 참조됨 : MoveTo(), SetAnimationSpeed(), TickAnimation().

◆ AnimElapsedTime

float UTabIndicator::AnimElapsedTime = 0.0f
private

애니메이션 진행 시간

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

다음에 의해서 참조됨 : MoveTo(), TickAnimation().

◆ AnimStartPosition

FVector2D UTabIndicator::AnimStartPosition = FVector2D::ZeroVector
private

애니메이션 시작 위치

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

다음에 의해서 참조됨 : MoveTo(), TickAnimation().

◆ AnimTargetPosition

FVector2D UTabIndicator::AnimTargetPosition = FVector2D::ZeroVector
private

애니메이션 목표 위치

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

다음에 의해서 참조됨 : MoveTo(), TickAnimation().

◆ AnimTimerHandle

FTimerHandle UTabIndicator::AnimTimerHandle
private

애니메이션을 위한 타이머 핸들

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

다음에 의해서 참조됨 : MoveTo(), NativeDestruct(), TickAnimation().

◆ bIsAnimating

bool UTabIndicator::bIsAnimating = false
private

애니메이션 진행 중 여부

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

다음에 의해서 참조됨 : MoveTo(), TickAnimation().

◆ OnMoveCompleted

FOnMoveCompleted UTabIndicator::OnMoveCompleted

이동 애니메이션이 완료되었을 때 발생하는 이벤트

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

다음에 의해서 참조됨 : MoveTo(), TickAnimation().


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