게임 데이터를 저장, 불러오기를 제작했다.
그러나 간과한게 있었다...
유니티에서는 MonoBehaviour나 GameObject 같은 특정 객체를 직접적으로 직렬화하는 것이 어려울 수 있다.
Unity의 MonoBehaviour, GameObject, Transform 등과 같은 객체는 직접적으로 JSON으로 직렬화할 수 없다. 이러한 객체를 담은 클래스는 복잡한 내부 참조와 엔진에 의존적인 상태를 가지고 있어, 직렬화 과정에서 문제가 발생할 수 있다.(실제로 문제가 생겼다.)
기본 데이터 타입(int, string, float 등)과 순수한 C# 클래스는 JSON으로 직렬화해야 한다.. Unity 엔진의 특정 기능에 의존하지 않기 때문에 안전하게 저장하고 로드할 수 있기 때문이다.
현재 우리의 프로젝트 중 DataManager에 있는 CageController 리스트와 같은 Unity 객체를 참조하는 필드가 다수다. 직접적으로 직렬화할 수 없으므로, 이 객체들의 상태를 나타내는 핵심 데이터만 별도의 클래스(CageState와 같은)로 추출해야 한다.
Unity 객체를 참조하는 필드 대신, 그 객체들의 상태를 나타내는 간단한 데이터 구조를 사용하는 방법이 있다.
예를 들어, CageController의 온도, 밝기, 청결도와 같은 정보만을 저장하는 CageState 클래스를 만들어 사용하는 방식이다.
DataManager와 같은 클래스에서 MonoBehaviour나 GameObject에 의존하는 필드 대신, 직렬화 가능한 데이터 클래스를 사용해야한다.
팀원에게 설명하기..