작성 코드
.h
#pragma once
#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "SpartaGameInstance.generated.h"
UCLASS()
class COINGAME_API USpartaGameInstance : public UGameInstance
{
GENERATED_BODY()
public:
USpartaGameInstance();
// 게임 전체 누적 점수
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "GameData")
int32 TotalScore;
// 현재 레벨 인덱스 (GameState에서도 관리할 수 있지만, 맵 전환 후에도 살리고 싶다면 GameInstance에 복제할 수 있음)
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "GameData")
int32 CurrentLevelIndex;
UFUNCTION(BlueprintCallable, Category = "GameData")
void AddToScore(int32 Amount);
};
.cpp
#include "SpartaGameInstance.h"
USpartaGameInstance::USpartaGameInstance()
{
TotalScore = 0;
CurrentLevelIndex = 0;
}
void USpartaGameInstance::AddToScore(int32 Amount)
{
TotalScore += Amount;
UE_LOG(LogTemp, Warning, TEXT("Total Score Updated: %d"), TotalScore);
}
자세한 설명
.h
.cpp