58{
59 Super::OnBeginInteraction(Caller);
60
61 check(Caller);
63
65 {
67 return;
68 }
69
70 APlayerController* PC = Cast<APlayerController>(
Player->GetController());
71 if (PC == nullptr)
72 {
73 LOG_ERROR(LogCK,
"%s 잘못된 유형의 오브젝트가 상호작용을 시도함. ", *Caller->GetName());
74 return;
75 }
76
78 if (PlayerManagement == nullptr)
79 {
80 LOG_ERROR(LogCK,
"%s 상호작용 실패. ", *Caller->GetName());
81 return;
82 }
83
85 {
86 LOG_ERROR(LogCK,
"%s WeaponTag 가 비어 있어 장착 요청을 발행할 수 없음.", *GetName());
87 return;
88 }
89
91 {
93 return;
94 }
95
97 LOG_INFO(LogCK,
"%s가 %s에 상호작용을 성공적으로 시도함. (WeaponTag=%s)", *Caller->GetName(), *GetName(), *
WeaponTag.ToString());
99
100 if (StageSubsystem == nullptr)
101 {
103 return;
104 }
105
107
108 if (SpawnSystem == nullptr)
109 {
111 return;
112 }
113
115}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:38
#define NAMEOF(Type)
Definition CK_UE.h:30
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:39
Definition MainPlayerCharacter.h:39
FGameplayTag WeaponTag
Definition TargetableWeapon.h:43
Definition InteractableSpawnSystemComponent.h:18
void DespawnInteractableActor(AActor *Interactable)
Definition InteractableSpawnSystemComponent.cpp:100
Definition PlayerManagementSubsystem.h:42
void UnregisterSpawnedWeapon(const FGameplayTag &WeaponTag, const ATargetableWeapon *SpawnedWeapon=nullptr)
Definition PlayerManagementSubsystem.cpp:518
bool SwapWeapon(const FGameplayTag &NewWeaponTag)
Definition PlayerManagementSubsystem.cpp:422
Definition StageManagementSubsystem.h:147
TSpawnSystem * GetOrCreateSpawnSystem()
Definition StageManagementSubsystem.h:282