Unity : SerializeObject
SerializeObject 란?
SerializedObject는 Serialize된 데이터를 Unity가 사용하도록 가공한 객체이다.
이 객체를 사용하여 여러가지 데이터에 접근이 가능하며, Undo 처리, 게임 객체로부터 프리팹을 용이하게 작성할 수 있다. SerializedObject는 Unity에서 사용하는 모든 객체에 관계가 있다. 주로 사용하는 에셋인 재질, 텍스처, 애니메이션 등도 SerializedObject를 사용한다.
UnityEngine.Object 와 SerializedObject의 관계
Unity 에디터에서 모든 객체(UnityEngine.Object)는 SerializedObject로 변환해서 사용한다. 인스펙터로 컴포넌트의 값을 편집할 때, Component의 인스턴스를 편집하는 것이 아니라, SerializedObject의 인스턴스를 편집한다.
Unity 에디터, 즉 에디터 확장에서는 가능한 모든 객체의 조작을 SerializedObject로 접근할 필요가 있다. 에디터에서는 Serialize된 데이터를 사용할 뿐만 아니라 Undo, Selection의 핸들링도 가지기 때문에 이와 같은 처리를 하려면 SerializedObject가 적합하다.
에셋과 SerializedObject의 관계
UnityEngine.Object를 에셋으로 보존할 경우 이진 형식, 혹은 YAML 형식의 텍스트 데이터로써 보존된다.
이들에 대한 직렬화를 처리하는 것이 SerializedObject 이다.위의 관계를 표현하면 그림 5.2와 같다.
UnityEngine.Object를 에셋으로 보존하려면 SerializedObject로 한번 변환을 거친다.
변환한 SerializedObject는 에셋과 .meta파일로 작성된다.
HyunZzang의 프로그래밍 공간 / 함께 공부해요!!
도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 부탁드립니다 :)