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

#include <FoodHolder.h>

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

Public 멤버 함수

 AFoodHolder ()
 
void Multicast_ShowResultPopup (int32 CorrectAnswerIndex)
 [Multicast RPC] 모든 클라이언트에 정답 결과 팝업 표시
 
void Multicast_ShowWrongPopup (const FString &FoodName)
 [Multicast RPC] 모든 클라이언트에 오답 메시지 표시
 
void OnActivate (bool bSuccess)
 
void SetAnswerFoodIndex (int32 InAnswerFoodIndex)
 정답 Food 인덱스 설정
 

Public 속성

TObjectPtr< class UBoxComponent > BoxCollision
 
TObjectPtr< class USceneComponent > HoldPos
 
int32 Index = 0
 
TObjectPtr< class USkeletalMeshComponent > MeshComponent
 

Protected 멤버 함수

virtual void BeginPlay () override
 
virtual void GetLifetimeReplicatedProps (TArray< class FLifetimeProperty > &OutLifetimeProps) const override
 
virtual void Tick (float DeltaTime) override
 

Protected 속성

float ActivatedHeightOffset = 50.0f
 
int32 AnswerFoodIndex = -1
 정답 Food 인덱스 (-1이면 모든 Food 허용)
 
bool bIsActivated = false
 
TObjectPtr< class AActor > CurTarget
 
float RotationSpeed = 90.0f
 
int32 TryIdx = -1
 

Private 멤버 함수

bool CheckFood (class AFood *TargetFood)
 Food 검증 함수
 
void CheckPartialAnswer (const struct FFoodCapsuleData &TargetData, bool &bOutCityCorrect, bool &bOutFoodCorrect)
 
void OnFoodBoxOverlapBegin (UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
 BoxCollision Overlap 콜백
 
void OnRep_CurTarget ()
 
void OnRep_IsActivated ()
 
void UpdateActivateState (bool State)
 

상세한 설명

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

생성자 & 소멸자 문서화

◆ AFoodHolder()

AFoodHolder::AFoodHolder ( )

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

24{
25 PrimaryActorTick.bCanEverTick = true;
26
27 // Replication
28 bReplicates = true;
29
30 // Root component
31 USceneComponent* Root = CreateDefaultSubobject<USceneComponent>(TEXT("DefaultSceneRoot"));
32 RootComponent = Root;
33
34 // Mesh component
35 MeshComponent = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("MeshComponent"));
36 MeshComponent->SetupAttachment(RootComponent);
37
38 // Box collision component
39 BoxCollision = CreateDefaultSubobject<UBoxComponent>(TEXT("BoxCollision"));
40 BoxCollision->SetupAttachment(MeshComponent);
41 BoxCollision->SetGenerateOverlapEvents(true);
42 BoxCollision->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
43 BoxCollision->SetCollisionResponseToAllChannels(ECR_Overlap);
44
45 // HoldPos component
46 HoldPos = CreateDefaultSubobject<USceneComponent>(TEXT("HoldPos"));
47 HoldPos->SetupAttachment(MeshComponent);
48}
TObjectPtr< class UBoxComponent > BoxCollision
Definition FoodHolder.h:79
TObjectPtr< class USceneComponent > HoldPos
Definition FoodHolder.h:85
TObjectPtr< class USkeletalMeshComponent > MeshComponent
Definition FoodHolder.h:82

다음을 참조함 : BoxCollision, HoldPos, MeshComponent.

멤버 함수 문서화

◆ BeginPlay()

void AFoodHolder::BeginPlay ( )
overrideprotectedvirtual

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

51{
52 Super::BeginPlay();
53
54 BoxCollision->OnComponentBeginOverlap.AddDynamic(this, &AFoodHolder::OnFoodBoxOverlapBegin);
55
56 // 머티리얼 파라미터 초기화 (비활성화 상태)
58}
void UpdateActivateState(bool State)
void OnFoodBoxOverlapBegin(UPrimitiveComponent *OverlappedComponent, AActor *OtherActor, UPrimitiveComponent *OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &SweepResult)
BoxCollision Overlap 콜백

다음을 참조함 : BoxCollision, OnFoodBoxOverlapBegin(), UpdateActivateState().

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

◆ CheckFood()

bool AFoodHolder::CheckFood ( class AFood TargetFood)
private

Food 검증 함수

매개변수
TargetFood검증할 Food 액터
반환값
정답 여부

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

268{
269 if (!TargetFood) return false;
270
271 // Food의 모든 충돌 비활성화
272 if (TargetFood->Mesh)
273 {
274 TargetFood->Mesh->SetSimulatePhysics(false);
275 TargetFood->Mesh->SetCollisionEnabled(ECollisionEnabled::NoCollision);
276 }
277
278 // ListenQuest 정답 인덱스 가져오기
279 ALingoGameState* GS = Cast<ALingoGameState>(GetWorld()->GetGameState());
280 if (!GS) return false;
281
282 const int32 CorrectIdx = GS->GetListenScenarioData().correct_answer_index;
283 const TArray<FScenarioTargetData>& ScenarioData = GS->GetListenScenarioData().target_data;
284
285 FString CorrectCityName = ScenarioData[CorrectIdx].word1.name;
286 FString CorrectFoodName = ScenarioData[CorrectIdx].word2.name;
287
288 if (CorrectFoodName == TargetFood->CurrentFoodData.word2.name
289 && CorrectCityName == TargetFood->CurrentFoodData.word1.name)
290 {
291 // Success: Food를 HoldPos 위치보다 살짝 위에 배치
292 FVector ActivatedLocation = HoldPos->GetComponentLocation();
293 ActivatedLocation.Z += ActivatedHeightOffset;
294 TargetFood->SetActorLocation(ActivatedLocation);
295 TargetFood->SetActorRotation(HoldPos->GetComponentRotation());
296
297 // Activate 상태로 전환
298 bIsActivated = true;
299 CurTarget = TargetFood;
300
301 // 서버에서도 머티리얼 업데이트 (클라이언트는 OnRep_IsActivated에서 호출됨)
303
304 return true;
305 }
306 else
307 {
308 UE_LOG(LogTemp, Warning, TEXT("[CheckFood] Returning FALSE"));
309
310 // Fail: 서버에서 머티리얼 업데이트 (오답)
311 bIsActivated = false;
312 UpdateActivateState(false);
313
314 return false;
315 }
316}
TObjectPtr< class AActor > CurTarget
Definition FoodHolder.h:97
float ActivatedHeightOffset
Definition FoodHolder.h:105
bool bIsActivated
Definition FoodHolder.h:101
FORCEINLINE const FResponseListenScenario & GetListenScenarioData() const
TArray< FScenarioTargetData > target_data

다음을 참조함 : ActivatedHeightOffset, bIsActivated, FResponseListenScenario::correct_answer_index, AFood::CurrentFoodData, CurTarget, ALingoGameState::GetListenScenarioData(), HoldPos, AFood::Mesh, FWordInfo::name, FResponseListenScenario::target_data, UpdateActivateState(), FFoodCapsuleData::word1, FFoodCapsuleData::word2.

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

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

◆ CheckPartialAnswer()

void AFoodHolder::CheckPartialAnswer ( const struct FFoodCapsuleData TargetData,
bool &  bOutCityCorrect,
bool &  bOutFoodCorrect 
)
private

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

319{
320 bOutCityCorrect = false;
321 bOutFoodCorrect = false;
322
323 // ListenQuest 정답 인덱스 가져오기
324 ALingoGameState* GS = Cast<ALingoGameState>(GetWorld()->GetGameState());
325 if (!GS) return;
326
327 const int32 CorrectIdx = GS->GetListenScenarioData().correct_answer_index;
328 const TArray<FScenarioTargetData>& ScenarioData = GS->GetListenScenarioData().target_data;
329
330 FString CorrectCityName = ScenarioData[CorrectIdx].word1.name;
331 FString CorrectFoodName = ScenarioData[CorrectIdx].word2.name;
332
333 // 각각 판정
334 bOutCityCorrect = (CorrectCityName == TargetData.word1.name);
335 bOutFoodCorrect = (CorrectFoodName == TargetData.word2.name);
336}
FWordInfo word1
시나리오 단어 정보
Definition Food.h:22
FWordInfo word2
Definition Food.h:25
FString name

다음을 참조함 : FResponseListenScenario::correct_answer_index, ALingoGameState::GetListenScenarioData(), FWordInfo::name, FResponseListenScenario::target_data, FFoodCapsuleData::word1, FFoodCapsuleData::word2.

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

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

◆ GetLifetimeReplicatedProps()

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

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

74{
75 Super::GetLifetimeReplicatedProps(OutLifetimeProps);
76
77 DOREPLIFETIME(AFoodHolder, bIsActivated);
78 DOREPLIFETIME(AFoodHolder, CurTarget);
79 DOREPLIFETIME(AFoodHolder, TryIdx);
80}
int32 TryIdx
Definition FoodHolder.h:93

다음을 참조함 : bIsActivated, CurTarget, TryIdx.

◆ Multicast_ShowResultPopup()

void AFoodHolder::Multicast_ShowResultPopup ( int32  CorrectAnswerIndex)

[Multicast RPC] 모든 클라이언트에 정답 결과 팝업 표시

매개변수
CorrectAnswerIndex정답 인덱스

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

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

◆ Multicast_ShowWrongPopup()

void AFoodHolder::Multicast_ShowWrongPopup ( const FString &  FoodName)

[Multicast RPC] 모든 클라이언트에 오답 메시지 표시

매개변수
FoodName선택한 Food 이름

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

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

◆ OnActivate()

void AFoodHolder::OnActivate ( bool  bSuccess)

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

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

◆ OnFoodBoxOverlapBegin()

void AFoodHolder::OnFoodBoxOverlapBegin ( UPrimitiveComponent *  OverlappedComponent,
AActor *  OtherActor,
UPrimitiveComponent *  OtherComp,
int32  OtherBodyIndex,
bool  bFromSweep,
const FHitResult &  SweepResult 
)
private

BoxCollision Overlap 콜백

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

117{
118 if (!OtherActor)
119 return;
120
121 if (!HasAuthority())
122 return;
123
124 if (bIsActivated)
125 return;
126
127 ALingoGameState* GS = Cast<ALingoGameState>(GetWorld()->GetGameState());
128 if (!GS) return;
129
130 TryIdx++;
131
132 // Food인지 확인
133 if (AFood* Food = Cast<AFood>(OtherActor))
134 {
135 // 정답 판정
136 const bool bSuccess = CheckFood(Food);
137
138 // 제출 리스트에 제출 데이터 업데이트
139 FScenarioTargetData TempData;
140 TempData.word1 = Food->CurrentFoodData.word1;
141 TempData.word2 = Food->CurrentFoodData.word2;
142 GS->TryListenAnswerData.target_data.Add(TempData);
143
144 // 블루프린트 이벤트 호출
145 OnActivate(bSuccess);
146
147 if (bSuccess)
148 {
149 UE_LOG(LogTemp, Warning, TEXT("[FoodHolder] Correct"));
150
151 GS->SetAllCompassVisibility(false);
152 GS->SetCompassVisibilityByTag("ListenQuestEnd", true);
153
154 // 정답인 경우
155 FTimerHandle TimerHandle;
156 GetWorldTimerManager().SetTimer(TimerHandle, [this, Food]
157 {
159
160 // 모든 액터의 글씨 없애기
161 AActor* FoodContainerManager = UGameplayStatics::GetActorOfClass(GetWorld(), AFoodCourtManager::StaticClass());
162 if (AFoodCourtManager* FCManager = Cast<AFoodCourtManager>(FoodContainerManager))
163 {
164 FCManager->DisableAllListenAnswersText();
165 }
166
167 // Food 캡슐도 텍스트 없애기
168 Food->CurrentFoodData.word1.name = TEXT("");
169 Food->CurrentFoodData.word2.name = TEXT("");
170
171 if (HasAuthority()) Food->UpdateFoodWidget();
172
173 // 모든 클라이언트에 정답 인덱스와 함께 결과 팝업 표시
175 }, 0.5f, false);
176 }
177 else
178 {
179 UE_LOG(LogTemp, Warning, TEXT("[FoodHolder] Wrong"));
180
181 // 오답인 경우
182 FTimerHandle TimerHandle;
183 GetWorldTimerManager().SetTimer(TimerHandle, [this, Food, GS]
184 {
185 // 오답 리스트에 추가
187
188 // 모든 클라이언트에 오답 메시지 표시
189 Multicast_ShowWrongPopup(Food->CurrentFoodData.word1.name);
190
191 // 컨베이어 투입구 텍스트 원상복구
192 TArray<AActor*> CityNames;
193 UGameplayStatics::GetAllActorsOfClass(GetWorld(), ACityName::StaticClass(), CityNames);
194
195 for (AActor* Actor : CityNames)
196 {
197 if (ACityName* CN = Cast<ACityName>(Actor))
198 {
199 CN->SetDefaultText();
200 }
201 }
202
203 // 투입구 상태 초기화
204 TArray<AActor*> OrderKiosks;
205 UGameplayStatics::GetAllActorsOfClass(GetWorld(), AOrderKiosk::StaticClass(), OrderKiosks);
206 for (auto OrderKiosk : OrderKiosks)
207 {
208 if (AOrderKiosk* Kiosk = Cast<AOrderKiosk>(OrderKiosk))
209 Kiosk->IsOnceStopped = false;
210 }
211
212 // 새 Food 캡슐에 부분 정답 데이터 저장
213 /* Food 또는 City만 정답일 경우 : 정답인 요소만 저장
214 * 둘 다 오답인 경우 : 완전 초기화 */
215 FFoodCapsuleData PrevData = Food->CurrentFoodData;
216 Food->Destroy();
217
218 // 새 FoodContainer 생성
219 AActor* FoodContainerManager = UGameplayStatics::GetActorOfClass(GetWorld(), AFoodCourtManager::StaticClass());
220 if (AFoodCourtManager* FCManager = Cast<AFoodCourtManager>(FoodContainerManager))
221 {
222 FCManager->SpawnFoodContainer();
223
224 FTimerHandle PartialAnswerTimer;
225 GetWorldTimerManager().SetTimer(PartialAnswerTimer, [this, PrevData]
226 {
227 AFood* NewFood = Cast<AFood>(UGameplayStatics::GetActorOfClass(GetWorld(), AFood::StaticClass()));
228 if (!NewFood)
229 {
230 UE_LOG(LogTemp, Error, TEXT("[FoodHolder] NewFood is nullptr!"));
231 return;
232 }
233
234 // 부분정답 판정해서 틀리면 공백으로 되돌리기
235 bool bCityCorrect = false;
236 bool bFoodCorrect = false;
237 CheckPartialAnswer(PrevData, bCityCorrect, bFoodCorrect);
238
239 // City만 정답인 경우
240 if (bCityCorrect && !bFoodCorrect)
241 {
242 UE_LOG(LogTemp, Warning, TEXT("[FoodHolder] City Only Correct - Updating City name widget"));
243 NewFood->CurrentFoodData.word1 = PrevData.word1;
244 NewFood->UpdateFoodWidget();
245 }
246 // Food만 정답인 경우
247 else if (!bCityCorrect && bFoodCorrect)
248 {
249 UE_LOG(LogTemp, Warning, TEXT("[FoodHolder] Food Only Correct - Updating Food mesh"));
250 NewFood->CurrentFoodData.word2 = PrevData.word2;
251 NewFood->UpdateFoodWidget();
252 NewFood->UpdateMesh();
253 }
254 // 둘 다 오답: 기본 빈 상태 유지
255 else if (!bCityCorrect && !bFoodCorrect)
256 {
257 UE_LOG(LogTemp, Warning, TEXT("[FoodHolder] Both Wrong - NewFood remains empty"));
258 }
259 }, 1.0f, false);
260 }
261
262 }, 0.5f, false);
263 }
264 }
265}
bool CheckFood(class AFood *TargetFood)
Food 검증 함수
void Multicast_ShowResultPopup(int32 CorrectAnswerIndex)
[Multicast RPC] 모든 클라이언트에 정답 결과 팝업 표시
void Multicast_ShowWrongPopup(const FString &FoodName)
[Multicast RPC] 모든 클라이언트에 오답 메시지 표시
void CheckPartialAnswer(const struct FFoodCapsuleData &TargetData, bool &bOutCityCorrect, bool &bOutFoodCorrect)
void OnActivate(bool bSuccess)
Definition Food.h:37
void UpdateFoodWidget()
Widget에 음식 이름 업데이트
Definition Food.cpp:100
void UpdateMesh()
음식 메시 업데이트 (DataTable에서 로드)
Definition Food.cpp:123
FFoodCapsuleData CurrentFoodData
Definition Food.h:77
TArray< int32 > WrongListenAnswerList
FResponseListenScenario TryListenAnswerData
void SetCompassVisibilityByTag(FName Tag, bool bVisible)
void SetAllCompassVisibility(bool bVisible)
static ANetworkBroadcastActor * Get(const UObject *WorldContextObject)
싱글톤 인스턴스 가져오기
void SendDoorMessage(int InDoorIndex, bool bOpen, AActor *EventInstigator)
문 상태 변경 메시지를 네트워크로 전송
static const int32 Step2_End
Definition Onepiece.h:29
Scenario 타겟 데이터입니다.

다음을 참조함 : bIsActivated, CheckFood(), CheckPartialAnswer(), AFood::CurrentFoodData, Food, ANetworkBroadcastActor::Get(), Multicast_ShowResultPopup(), Multicast_ShowWrongPopup(), OnActivate(), ANetworkBroadcastActor::SendDoorMessage(), ALingoGameState::SetAllCompassVisibility(), ALingoGameState::SetCompassVisibilityByTag(), DoorGroup::Step2_End, FResponseListenScenario::target_data, TryIdx, ALingoGameState::TryListenAnswerData, AFood::UpdateFoodWidget(), AFood::UpdateMesh(), FFoodCapsuleData::word1, FScenarioTargetData::word1, FFoodCapsuleData::word2, FScenarioTargetData::word2, ALingoGameState::WrongListenAnswerList.

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

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

◆ OnRep_CurTarget()

void AFoodHolder::OnRep_CurTarget ( )
private

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

89{
90 // CurTarget이 복제될 때 클라이언트에서도 충돌 비활성화
91 if (CurTarget)
92 {
93 if (AFood* Food = Cast<AFood>(CurTarget))
94 {
95 if (Food->Mesh)
96 {
97 Food->Mesh->SetSimulatePhysics(false);
98 Food->Mesh->SetCollisionEnabled(ECollisionEnabled::NoCollision);
99 }
100 PRINTLOG(TEXT("AFoodHolder::OnRep_CurTarget - Disabled collision for Food on client"));
101 }
102 }
103}
#define PRINTLOG(fmt,...)
Definition GameLogging.h:30

다음을 참조함 : CurTarget, Food, PRINTLOG.

◆ OnRep_IsActivated()

void AFoodHolder::OnRep_IsActivated ( )
private

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

83{
84 // bIsActivated가 복제될 때 머티리얼 업데이트
86}

다음을 참조함 : bIsActivated, UpdateActivateState().

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

◆ SetAnswerFoodIndex()

void AFoodHolder::SetAnswerFoodIndex ( int32  InAnswerFoodIndex)

정답 Food 인덱스 설정

매개변수
InAnswerFoodIndex정답 Food의 인덱스

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

106{
107 this->AnswerFoodIndex = InAnswerFoodIndex;
108}
int32 AnswerFoodIndex
정답 Food 인덱스 (-1이면 모든 Food 허용)
Definition FoodHolder.h:112

다음을 참조함 : AnswerFoodIndex.

◆ Tick()

void AFoodHolder::Tick ( float  DeltaTime)
overrideprotectedvirtual

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

61{
62 Super::Tick(DeltaTime);
63
64 // CurTarget이 유효하고 활성화된 상태라면 회전
66 {
67 FRotator CurrentRotation = CurTarget->GetActorRotation();
68 CurrentRotation.Yaw += RotationSpeed * DeltaTime;
69 CurTarget->SetActorRotation(CurrentRotation);
70 }
71}
float RotationSpeed
Definition FoodHolder.h:108

다음을 참조함 : bIsActivated, CurTarget, RotationSpeed.

◆ UpdateActivateState()

void AFoodHolder::UpdateActivateState ( bool  State)
private

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

339{
340 // 머티리얼 파라미터 설정
341 if (MeshComponent && MeshComponent->GetNumMaterials() > 0)
342 {
343 UMaterialInstanceDynamic* DynamicMaterial = Cast<UMaterialInstanceDynamic>(MeshComponent->GetMaterial(0));
344 if (!DynamicMaterial)
345 DynamicMaterial = MeshComponent->CreateDynamicMaterialInstance(0);
346
347 if (DynamicMaterial)
348 DynamicMaterial->SetScalarParameterValue(FName("Activate"), State ? 1.0f : 0.0f);
349 }
350}

다음을 참조함 : MeshComponent.

다음에 의해서 참조됨 : BeginPlay(), CheckFood(), OnRep_IsActivated().

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

멤버 데이터 문서화

◆ ActivatedHeightOffset

float AFoodHolder::ActivatedHeightOffset = 50.0f
protected

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

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

◆ AnswerFoodIndex

int32 AFoodHolder::AnswerFoodIndex = -1
protected

정답 Food 인덱스 (-1이면 모든 Food 허용)

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

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

◆ bIsActivated

bool AFoodHolder::bIsActivated = false
protected

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

다음에 의해서 참조됨 : CheckFood(), GetLifetimeReplicatedProps(), OnFoodBoxOverlapBegin(), OnRep_IsActivated(), Tick().

◆ BoxCollision

TObjectPtr<class UBoxComponent> AFoodHolder::BoxCollision

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

다음에 의해서 참조됨 : AFoodHolder(), BeginPlay().

◆ CurTarget

TObjectPtr<class AActor> AFoodHolder::CurTarget
protected

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

다음에 의해서 참조됨 : CheckFood(), GetLifetimeReplicatedProps(), OnRep_CurTarget(), Tick().

◆ HoldPos

TObjectPtr<class USceneComponent> AFoodHolder::HoldPos

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

다음에 의해서 참조됨 : AFoodHolder(), CheckFood().

◆ Index

int32 AFoodHolder::Index = 0

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

◆ MeshComponent

TObjectPtr<class USkeletalMeshComponent> AFoodHolder::MeshComponent

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

다음에 의해서 참조됨 : AFoodHolder(), UpdateActivateState().

◆ RotationSpeed

float AFoodHolder::RotationSpeed = 90.0f
protected

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

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

◆ TryIdx

int32 AFoodHolder::TryIdx = -1
protected

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

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


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