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

#include <ADropper.h>

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

Public 멤버 함수

 ADropper ()
 
FORCEINLINE bool IsBusy () const
 
bool RequestSpawn ()
 스폰 요청 (서버에서만 동작)
 
void SetSpawnClass (TSubclassOf< AActor > InClass)
 스폰 전에 Dropper가 어떤 클래스를 스폰할지 등록
 
void SetSpawnData (const FLuggageData &InData)
 [Luggage용] 스폰 전에 Dropper가 생성될 액터에게 넘겨줄 데이터 등록
 

Public 속성

int32 DropperIndex = 0
 

Protected 멤버 함수

virtual void GetLifetimeReplicatedProps (TArray< FLifetimeProperty > &OutLifetimeProps) const override
 
void Multicast_DisableCollision ()
 충돌 비활성화
 
void Multicast_PlayAnimation ()
 애니메이션 재생
 
void Multicast_RestoreCollision ()
 충돌 복구
 
void Server_Spawn ()
 
void Spawn ()
 서버에서만 실행되는 실제 스폰 로직
 

Private 멤버 함수

void OnDelayCompleted ()
 
void OnRestoreCompleted ()
 

Private 속성

TObjectPtr< UAnimationAsset > AnimToPlay
 드랍 시 재생할 애니메이션
 
bool bIsSpawnIng = false
 이번 스폰에서 사용할 데이터
 
TObjectPtr< UStaticMeshComponent > BoxCollision
 충돌 박스
 
FTimerHandle DelayTimerHandle
 
FLuggageData NextData
 이번 스폰에서 사용할 데이터
 
FTimerHandle RestoreTimerHandle
 
TObjectPtr< USkeletalMeshComponent > SkeletalMesh
 드랍퍼 스켈레탈 메시
 
TSubclassOf< AActor > SpawnClass
 이번 스폰에서 사용할 클래스
 
TObjectPtr< USceneComponent > SpawnPos
 스폰 위치
 

상세한 설명

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

생성자 & 소멸자 문서화

◆ ADropper()

ADropper::ADropper ( )

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

17{
18 PrimaryActorTick.bCanEverTick = false;
19 bReplicates = true;
20
21 // Root
22 USceneComponent* Root = CreateDefaultSubobject<USceneComponent>(TEXT("Root"));
23 RootComponent = Root;
24
25 // SkeletalMesh
26 SkeletalMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("SkeletalMesh"));
27 SkeletalMesh->SetupAttachment(RootComponent);
28
29 // Collision Mesh
30 BoxCollision = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("BoxCollision"));
31 BoxCollision->SetupAttachment(SkeletalMesh);
32 BoxCollision->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
33 BoxCollision->SetCollisionResponseToAllChannels(ECR_Block);
34
35 // Spawn Position
36 SpawnPos = CreateDefaultSubobject<USceneComponent>(TEXT("SpawnPos"));
37 SpawnPos->SetupAttachment(SkeletalMesh);
38}
TObjectPtr< USceneComponent > SpawnPos
스폰 위치
Definition ADropper.h:87
TObjectPtr< USkeletalMeshComponent > SkeletalMesh
드랍퍼 스켈레탈 메시
Definition ADropper.h:91
TObjectPtr< UStaticMeshComponent > BoxCollision
충돌 박스
Definition ADropper.h:95

다음을 참조함 : BoxCollision, SkeletalMesh, SpawnPos.

멤버 함수 문서화

◆ GetLifetimeReplicatedProps()

void ADropper::GetLifetimeReplicatedProps ( TArray< FLifetimeProperty > &  OutLifetimeProps) const
overrideprotectedvirtual

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

41{
42 Super::GetLifetimeReplicatedProps(OutLifetimeProps);
43
44 DOREPLIFETIME(ADropper, SpawnClass);
45 DOREPLIFETIME(ADropper, NextData);
46 DOREPLIFETIME(ADropper, bIsSpawnIng);
47}
TSubclassOf< AActor > SpawnClass
이번 스폰에서 사용할 클래스
Definition ADropper.h:103
FLuggageData NextData
이번 스폰에서 사용할 데이터
Definition ADropper.h:107
bool bIsSpawnIng
이번 스폰에서 사용할 데이터
Definition ADropper.h:115

다음을 참조함 : bIsSpawnIng, NextData, SpawnClass.

◆ IsBusy()

FORCEINLINE bool ADropper::IsBusy ( ) const
inline

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

54{ return bIsSpawnIng; };

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

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

◆ Multicast_DisableCollision()

void ADropper::Multicast_DisableCollision ( )
protected

충돌 비활성화

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

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

◆ Multicast_PlayAnimation()

void ADropper::Multicast_PlayAnimation ( )
protected

애니메이션 재생

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

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

◆ Multicast_RestoreCollision()

void ADropper::Multicast_RestoreCollision ( )
protected

충돌 복구

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

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

◆ OnDelayCompleted()

void ADropper::OnDelayCompleted ( )
private

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

140{
141 if (!HasAuthority())
142 return;
143
145
146 GetWorldTimerManager().SetTimer(
148 this,
150 2.0f,
151 false
152 );
153}
void OnRestoreCompleted()
Definition ADropper.cpp:155
void Multicast_DisableCollision()
충돌 비활성화
FTimerHandle RestoreTimerHandle
Definition ADropper.h:118

다음을 참조함 : Multicast_DisableCollision(), OnRestoreCompleted(), RestoreTimerHandle.

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

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

◆ OnRestoreCompleted()

void ADropper::OnRestoreCompleted ( )
private

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

156{
157 if (!HasAuthority())
158 return;
159
161 bIsSpawnIng = false;
162}
void Multicast_RestoreCollision()
충돌 복구

다음을 참조함 : bIsSpawnIng, Multicast_RestoreCollision().

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

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

◆ RequestSpawn()

bool ADropper::RequestSpawn ( )

스폰 요청 (서버에서만 동작)

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

50{
51 PRINTLOG(TEXT("Dropper GUID = %s, Authority=%d"),
52 *GetPathName(), HasAuthority());
53
54 if (!SpawnClass || !SpawnPos)
55 return false;
56
57 if (bIsSpawnIng)
58 return false;
59
60 if (HasAuthority())
61 Spawn();
62 else
64
65 return true;
66}
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30
void Server_Spawn()
void Spawn()
서버에서만 실행되는 실제 스폰 로직
Definition ADropper.cpp:68

다음을 참조함 : bIsSpawnIng, PRINTLOG, Server_Spawn(), Spawn(), SpawnClass, SpawnPos.

다음에 의해서 참조됨 : APlayerControl::RequestDrop(), AFoodCourtManager::SpawnFoodContainer().

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

◆ Server_Spawn()

void ADropper::Server_Spawn ( )
protected

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

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

◆ SetSpawnClass()

void ADropper::SetSpawnClass ( TSubclassOf< AActor >  InClass)
inline

스폰 전에 Dropper가 어떤 클래스를 스폰할지 등록

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

45{ SpawnClass = InClass; }

다음에 의해서 참조됨 : APlayerControl::RequestDrop(), AFoodCourtManager::SpawnFoodContainer().

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

◆ SetSpawnData()

void ADropper::SetSpawnData ( const FLuggageData InData)
inline

[Luggage용] 스폰 전에 Dropper가 생성될 액터에게 넘겨줄 데이터 등록

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

48{ NextData = InData; }

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

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

◆ Spawn()

void ADropper::Spawn ( )
protected

서버에서만 실행되는 실제 스폰 로직

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

69{
70 if (!HasAuthority())
71 return;
72
73 if (!SpawnClass || !SpawnPos)
74 {
75 PRINTLOG(TEXT("ADropper::SpawnInternal - Invalid data"));
76 bIsSpawnIng = false;
77 return;
78 }
79
80 FActorSpawnParameters Params;
81 Params.Owner = this;
82 Params.Instigator = GetInstigator();
83
84 // 실제 스폰
85 AActor* SpawnedActor = GetWorld()->SpawnActor<AActor>(
87 SpawnPos->GetComponentLocation(),
88 SpawnPos->GetComponentRotation(),
89 Params
90 );
91
92 if (!SpawnedActor)
93 {
94 bIsSpawnIng = false;
95 return;
96 }
97
98 bIsSpawnIng = true;
99
100 // 애니메이션 실행
103
104 FTimerHandle TimerHandle;
105 GetWorld()->GetTimerManager().SetTimer(TimerHandle, FTimerDelegate::CreateLambda([this, SpawnedActor]
106 {
107
108 // 데이터 전달
109 if (auto tmpLuggage = Cast<Aluggage>(SpawnedActor))
110 {
111 tmpLuggage->SetLuggageInfo(NextData.SpawnIndex, NextData.word2.name, NextData.word1.name);
112
113 int32 ColorIdx = FCString::Atoi(*NextData.word2.code);
114 tmpLuggage->ApplyColorToMesh(ColorIdx);
115
116 int32 PatternIdx = FCString::Atoi(*NextData.word1.code);
117 tmpLuggage->ApplyPatternToMesh(PatternIdx);
118 }
119
120 }), 1.f, false);
121
122 // 2초 뒤 충돌 OFF → 다시 ON
123 GetWorldTimerManager().SetTimer(
125 this,
127 2.0f,
128 false
129 );
130}
void Multicast_PlayAnimation()
애니메이션 재생
TObjectPtr< UAnimationAsset > AnimToPlay
드랍 시 재생할 애니메이션
Definition ADropper.h:99
void OnDelayCompleted()
Definition ADropper.cpp:139
FTimerHandle DelayTimerHandle
Definition ADropper.h:117
FWordInfo word1
시나리오 단어 정보
Definition ADropper.h:18
FWordInfo word2
Definition ADropper.h:21
int32 SpawnIndex
스폰 인덱스(선택적으로 사용)
Definition ADropper.h:25
FString code
FString name

다음을 참조함 : AnimToPlay, bIsSpawnIng, FWordInfo::code, DelayTimerHandle, Multicast_PlayAnimation(), FWordInfo::name, NextData, OnDelayCompleted(), PRINTLOG, SkeletalMesh, SpawnClass, FLuggageData::SpawnIndex, SpawnPos, FLuggageData::word1, FLuggageData::word2.

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

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

멤버 데이터 문서화

◆ AnimToPlay

TObjectPtr<UAnimationAsset> ADropper::AnimToPlay
private

드랍 시 재생할 애니메이션

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

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

◆ bIsSpawnIng

bool ADropper::bIsSpawnIng = false
private

이번 스폰에서 사용할 데이터

스폰 처리 진행 중 여부 (RPC로 공유)

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

다음에 의해서 참조됨 : GetLifetimeReplicatedProps(), OnRestoreCompleted(), RequestSpawn(), Spawn().

◆ BoxCollision

TObjectPtr<UStaticMeshComponent> ADropper::BoxCollision
private

충돌 박스

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

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

◆ DelayTimerHandle

FTimerHandle ADropper::DelayTimerHandle
private

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

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

◆ DropperIndex

int32 ADropper::DropperIndex = 0

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

◆ NextData

FLuggageData ADropper::NextData
private

이번 스폰에서 사용할 데이터

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

다음에 의해서 참조됨 : GetLifetimeReplicatedProps(), Spawn().

◆ RestoreTimerHandle

FTimerHandle ADropper::RestoreTimerHandle
private

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

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

◆ SkeletalMesh

TObjectPtr<USkeletalMeshComponent> ADropper::SkeletalMesh
private

드랍퍼 스켈레탈 메시

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

다음에 의해서 참조됨 : ADropper(), Spawn().

◆ SpawnClass

TSubclassOf<AActor> ADropper::SpawnClass
private

이번 스폰에서 사용할 클래스

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

다음에 의해서 참조됨 : GetLifetimeReplicatedProps(), RequestSpawn(), Spawn().

◆ SpawnPos

TObjectPtr<USceneComponent> ADropper::SpawnPos
private

스폰 위치

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

다음에 의해서 참조됨 : ADropper(), RequestSpawn(), Spawn().


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