작성
·
172
답변 1
1
수강해주셔서 감사합니다.
다음은 IdentifiedObject(강의에서 보게되실 Effect 객체)의 meta Data입니다.
주황색을 보시면 codeName은 string형이므로 값 자체가 Serialize 됐지만, Category와 그 아래 Icon은 유니티 객체이므로 FileID와 GUID(=참조 정보)만 Serialize된 것을 볼 수 있습니다.
UnityEntine.Object를 상속 받고 있는 모든 유니티 객체는 직렬화될 때 해당 객체의 참조 정보(FileID, GUID 등)만 직렬화됩니다. Instantiate 함수를 사용하거나 Scene에서 생성될 때 이 참조 정보를 이용하여 내부 AssetDatabase에서 해당 객체를 찾아와 변수에 연결해주는겁니다.
Category는 IdentifiedObject를 상속 받고, IdentifiedObject는 ScriptableObject를 상속 받고 있는 유니티 객체이므로 직렬화가 일어날 때 Category들에 대한 참조 정보만 직렬화되므로 내부 변수에 접근하지 않기 때문에 Loop가 일어나지 않습니다.
감사합니다.