Unreal 5/Troubleshooting

[Unreal 5] SaveGame 으로 stuct를 저장할때 값이 변경되는 문제.

돼지표 2025. 1. 6. 21:10
USTRUCT()
struct FWeaponSaveData
{
	GENERATED_BODY()
public:
	FWeaponSaveData(): WeaponType(EWeaponType::None), WeaponTier(EWeaponTier::None) {}
	FWeaponSaveData(EWeaponType Type, EWeaponTier Tier): WeaponType(Type), WeaponTier(Tier) {}
	EWeaponType WeaponType;
	EWeaponTier WeaponTier;
};

UCLASS()
class PROJECT_4_API UPlayerData : public USaveGame
{
	GENERATED_BODY()
	
public:
	UPROPERTY()
	TArray<FWeaponSaveData> WeaponSaveData;
};

 

데이터를 저장할때 이런식으로 struct를 저장하고 싶을 때가 있다.

분명 데이터를 정확하게 넣었는데 저장된 세이브를 불러서 값을 확인해보면 이상하게 나온다.

 

이에 언리얼 포럼에서는 이렇게 말한다.

 

 

자 변역을 해보자면 struct의 변수들을 UPROPERTY로 플래그를 지정해줘야 구조체가 SaveGame에서 직렬화 된다고 한다... 냉큼 바꿔보자

USTRUCT()
struct FWeaponSaveData
{
	GENERATED_BODY()
public:
	FWeaponSaveData(): WeaponType(EWeaponType::None), WeaponTier(EWeaponTier::None) {}
	FWeaponSaveData(EWeaponType Type, EWeaponTier Tier): WeaponType(Type), WeaponTier(Tier) {}
	UPROPERTY()
	EWeaponType WeaponType;
	UPROPERTY()
	EWeaponTier WeaponTier;
};

 

 

 

GOOD!