게임 오버 시점에서 점수가 APPPGameState에서 UPPPGameInstance로 제대로 전달되지 않음
GameOverWidget에서 GameInstance로부터 점수를 받지 못하고 있어 점수가 표시되지 않음
기탁님께 연락을 했다... 고쳐주셨다...
APPPGameMode::HandleGameOver() 에서 APPPGameState 에서 점수를 가져와 UPPPGameInstance의 FinalScore에 저장하도록 수정
➡ 점수를 GameOverWidget에 전달할 수 있도록 함
// 게임 모드에서 점수를 GameInstance에 저장
if (UPPPGameInstance* GI = GetGameInstance<UPPPGameInstance>())
{
GI->FinalScore = FinalScore; // FinalScore에 점수 저장
UGameOverWidget::NativeConstruct()에서 GameInstance의 FinalScore를 가져와 ScoreText에 표시하도록 수정
SetFinalScore() 함수로 점수를 설정하고 ScoreText에 출력
// GameInstance에서 점수 가져와서 표시
if (UPPPGameInstance* GI = GetGameInstance<UPPPGameInstance>())
{
int32 FinalScore = GI->FinalScore;
if (ScoreText)
{
FString ScoreString = FString::Printf(TEXT("Total Score: %d"), FinalScore);
ScoreText->SetText(FText::FromString(ScoreString)); // 점수 표시
}
}
APPPGameState에서 점수 관련 함수(AddScore, ResetScore, GetScore)를 추가하여 점수를 관리
➡ 이를 통해 점수 변경 시 UI 업데이트가 가능하도록 설정
void APPPGameState::AddScore(int32 Amount)
{
Score += Amount;
OnRep_Score(); // 점수 변경 시 UI 업데이트
}
void APPPGameState::ResetScore()
{
Score = 0;
OnRep_Score(); // 점수 초기화 시 UI 업데이트
}
int32 APPPGameState::GetScore() const
{
return Score; // 현재 점수 반환
}
GameMode에서 점수를 GameInstance로 저장
GameOverWidget에서 해당 점수를 표시
게임 오버 시점에 정확한 점수가 화면에 나타남 !!
기탁님 감사합니다...ㅎㅎ..