SerializeObject 란?
- SerializedProperty와 같이 일반적인 방식으로 유니티 Object의 ‘직렬화’된 필드를 편집하기 위한 클래스다.
- 이 클래스들은 직렬화된 개별 필드 수정을 자동으로 처리하므로 Undo 시스템에 의해 처리되고 Inspector에서 프리팹 재정의에 대해 올바르게 스타일이 지정된다.
SerializeObject 특징
- Unity 에디터에서는 가능한 모든 객체의 조작을 SerializedObject로 접근할 필요가 있다.
- 에디터에 Serialize된 데이터를 사용할 뿐만 아니라 Undo, Selectin의 핸들링도 가지기 떄문에 이와 같은 처리를 하려면 SerializedObject가 적합하다.
- Unity 에디터에서 모든 객체는 SerializedObject로 변환해서 사용한다.
- 인스펙터로 컴포넌트의 값을 편집할 떄, COmponent의 인스턴스를 편집하는 것이 아니라, SerializedObject의 인스턴스를 편집한다.
SerializedObject 사용
- 직렬화된 데이터는 SerializedProperty로 얻어오는 것이 가능하며 반복자로 사용할 수 있다.
- SerializedObject는 내부로 캐시가 되어, 인스턴스화 되었을 때, 이미 캐시되어 있으면 캐시되어있는 것을 가져온다.
- 내부 캐시에서 최신 데이터를 취득한다.
- 항상 최신 정보로 두기 위해서 SerializedObject에 접근하기 전에 Update함수를 호출한다.
- Update로 항상 최신 정보로 두고, 함수 내에서 변경된 부분을 적용하는것은 ‘ApplyModifiedProperties’를 사용한다.
- Update와 ApplyModifiedProperties는 한 셋트로 생각해야한다.
- 변경되는 부분을 적용하기 위한 조건이 없을 경우 Update를 함수의 최초 행에, ApplyModifiedProperties를 함수의 최하단행에 기술한다.
'이론' 카테고리의 다른 글
| Sprite Sheet (0) | 2024.04.03 |
|---|---|
| Scriptable Object (0) | 2024.04.02 |
| Unity Mechanim (1) | 2024.03.31 |
| Asset Database (0) | 2024.03.30 |
| Asset Bundle (0) | 2024.03.28 |