이론

SerializeObject

월러비 2024. 4. 1. 19:39

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