플레이어 클래스를 Json으로 직렬화하여 저장하고 다시 역직렬화했을 때 스킬에 대해서 NullReferenceException이 발생했다.
캐릭터에서 스킬 클래스의 인스턴스를 생성하는데 역직렬화 후 인스턴스를 참조하지 못했다.
마이크로소프트 Learn - .Net - JSON을 .NET 개체로 읽는 방법(역직렬화) - 역직렬화 동작
"변경 불가능한 개체 또는 퍼블릭 set 접근자가 없는 속성에 대한 Deserialization이 지원되지만 기본적으로 활성화되지는 않습니다."
https://learn.microsoft.com/ko-kr/dotnet/standard/serialization/system-text-json/deserialization
스킬 클래스의 프로퍼티에 set 접근자가 없었다. 아래의 코드로 변경해주었다.
public List<Skill> SkillList { get; set;}