유니티에서 [SerializeField]를 활용하여 인스펙터에 노출되는 변수를 관리하는 방법에는 크게 직접 백킹 필드를 사용하는 방식과 자동 구현 프로퍼티 방식이 있습니다.
직접 백킹 필드 방식
명시적으로 백킹 필드를 선언하고, 이를 읽기 전용 프로퍼티(PlayerHealth)로 노출합니다.
// Example 1: 직접 백킹 필드 사용
[SerializeField] private int playerHealth; // 백킹 필드
public int PlayerHealth => playerHealth; // 읽기 전용 프로퍼티
자동 구현 프로퍼티 방식
컴파일러가 자동으로 백킹 필드를 생성하며, [field: SerializeField]를 통해 해당 필드를 인스펙터에 노출합니다.
// Example 2: 자동 구현 프로퍼티
[field: SerializeField] public float PlayerSpeed { get; private set; }
직접 백킹 필드 방식을 사용할 때
- 프로퍼티에 추가 로직(예: 값 검증, 이벤트 호출 등)이 필요한 경우
- 필드와 프로퍼티를 명확히 분리하여 코드의 의도를 드러내고 싶을 때
자동 구현 프로퍼티 방식을 사용할 때
- 간단한 데이터 캡슐화가 필요한 경우
- 코드의 간결함을 유지하고 싶을 때