저장하기 & 불러오기 기능이 완성되면 자세한 이야기를 해볼 예정이지만 오늘 알게 된 사실은 남겨놓고자 합니다.
특정 클래스의 데이터를 Json으로 파싱하여 저장하고자 할 때, 자동구현 프로퍼티로 만든 EquipID는 Json에 담기지 않았습니다.
[System.Serializable]
public class Character
{
public int characterID;
public Enums.CharacterType characterType;
public int slotIndex;
public bool isFormat;
public int[] EquipID { get; private set; } = new int[6] { -1, -1, -1, -1, -1, -1 };
...
}
원래 public인 필드들은 따로 직렬화를 해주지 않아도 Json에 잘 담겨야 하는데 자동구현 프로퍼티는 담기지 않았습니다.
[System.Serializable]
public class Character
{
public int characterID;
public Enums.CharacterType characterType;
public int slotIndex;
public bool isFormat;
[SerializeField] private int[] equipID = new int[6] { -1, -1, -1, -1, -1, -1 };
public int[] EquipID
{
get
{
return equipID;
}
}
...
}
다음과 같이 만들어줘야 equipId 필드를 따로 선언해주어야 json에 저장되는 것이 확인되었습니다.
일단은 JsonUtility로만 구현을 한 것이라 다른 방법이 있는지는 확인이 되진 않았지만 가장 간단하게 만든 방법(JsonUtility.ToJson() 사용)으로는 자동 구현 프로퍼티는 json으로 파싱되지 않는 것을 확인하였습니다.