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!