Custom Editor를 구현에서 SerializedProperty를 많이 사용하게 되었다.
오늘은 SerializedProperty에 대해 정리해 보겠다.
UnityEngine.Object란?
SerializedProperty를 알아보기에 앞서서 살펴볼 내용이 있다.
"유니티에서 아무 게임 오브젝트를 선택해보자."
여기서 인스펙터에 보이는 컴포넌트는 클래스의 인스턴스이다. 즉, UnityEngine.Object이다.
MonoBehaviour같은 유니티 클래스의 인스턴스를 관리하기 위한 타입이다.
SerializedProperty란?
- 클래스 인스턴스(UnityEngine.Object)의 값을 변경하는데 사용되는 타입이다.
- 클래스에 있는 직렬화 필드들의 Getter와 Setter를 가진다.
- SerializedProperty는 직렬화 시스템으로 UnityEngine.Object의 필드에 접근한다.
위에서 SerializedProperty에 대한 설명을 보았을 때, 많이 의아한 점이 생길 것이다.
왜냐하면 우리는 지금까지 유니티를 사용해 오면서, 숱하게 인스펙터의 컴포넌트 값을 수정하였다. 그런데도 SerializedProperty가 인스펙터의 컴포넌트 값을 바꿔주는 타입이라니, 그 역할이 짐작되지 않는다.
위의 내용들을 통해서 SerializedProperty를 간략히 설명하면 아래와 같다.
"인스펙터에서 컴포넌트는 UnityEngine.Object를 통해 보여진다.",
"인스펙터에서 컴포넌트에서 SerializedProperty 값 수정에 사용된다."
위의 내용으로 Custom Editor에서는 UnityEngine.Object의 특정한 필드 값을 가져와서 사용하기 위해서 SerializedProperty를 사용하는 것을 확인했다.
'유니티 > 개념 정리' 카테고리의 다른 글
| 확장 메서드 (3) | 2025.07.02 |
|---|---|
| 메서드 체이닝 (0) | 2025.06.30 |
| Custom Editor (0) | 2025.04.28 |
| const와 readonly (0) | 2025.04.01 |
| Text와 TextMeshPro (0) | 2024.12.17 |