자동 구현 프로퍼티는 인스펙터에서 노출되지 않기 때문에 테스트하기에 불편한 경우가 많다.
Debug 창에서 노출된다만, 커스텀 인스펙터를 사용하는 경우라면 일일이 Debug 창을 보기가 귀찮다.
[field: SerializeField] 란?
자동 구현된 프로퍼티는 field: SerializeField 애트리뷰트로 인스펙터에 노출 가능하다.
중요한 점은 흔히 알려져있는 SerializeField랑은 다른 애트리뷰트임.
[field: SerializeField] vs [SerializeField] 비교
비교를 위해 다음과 같이 SerializeField랑 field: SerializeField 를 같은 형식의 프로퍼티에 적용해본다.
사실 완전히 다른 애트리뷰트는 아니고, 내부 구현으로는 해당 프로퍼티 내부에 있는 필드에 SerializeField를 적용하라는 방식으로 되어있다고 한다.
주의점
1. 데이터만 직렬화 할 수 있다.
2. 자동 구현된 프로퍼티에만 사용할 수 있다. (람다로 구현된 Getter 프로퍼티 등에는 적용 불가능하다)
대단한 건 아니지만, 개인적으로는 캡슐화를 위해 자동 구현된 프로퍼티를 쓰는 경우가 많아서 소소하게 써먹을 곳이 많을 듯하다.
'🌍 Unity > 유니티 엔진 동작 관련' 카테고리의 다른 글
Unity Addressable bundle size analyze (0) | 2022.12.10 |
---|---|
unity 언제나 특정 씬에서 시작하게 만들기 (0) | 2022.11.21 |
Input System 마우스키보드 게임패드 동시지원 (0) | 2022.10.24 |
유니티 새로운 인풋 시스템 Unity New InputSystem (1) | 2022.10.02 |
ISerializationCallbackReceiver 시리얼라이즈 콜백 활용하기 (1) | 2022.05.12 |