Score == 30
조건과 적 전멸
조건이 각각 OnRoundCleared()
를 불러 라운드가 두 번 넘어감OnEnemyKilled()
와 OnRoundTimerFinished()
가 각각 따로 OnRoundCleared()
또는 EndRound()
를 호출
StartRound()
와 OnRoundCleared()
양쪽에서 라운드 증가 처리
EndRound()
내부 조건이 &&
로 묶여 있어, 점수와 적 처치 둘 다 만족해야만 클리어로 처리됨
EndRound()
하나로 통합OnEnemyKilled()
와 OnRoundTimerFinished()
에서 직접 OnRoundCleared()
호출하지 않고, 무조건 EndRound()
로 위임
if (NewCount <= 0)
{
UE_LOG(LogGame, Log, TEXT("모든 적 처치됨 → 라운드 종료 시도"));
EndRound();
}
if (NewCount <= 0)
{
UE_LOG(LogGame, Log, TEXT("모든 적 처치됨 → 라운드 종료 시도"));
EndRound();
}
라운드 증가 위치 수정
StartRound()
에서는 라운드 증가 제거OnRoundCleared()
에서만 증가 처리조건식 개선
&&
(모두 충족) → ||
(둘 중 하나 충족)로 변경if (GS->IsRoundCleared() || GS->RemainingEnemies <= 0)
{
UE_LOG(LogGame, Log, TEXT("조건 충족 → 라운드 클리어"));
OnRoundCleared();
}
else
{
UE_LOG(LogGame, Warning, TEXT("조건 미달 → 게임 오버"));
OnGameOver();
}
추가 보정