Unity시작과 컴포넌트

SerializeField와 인스펙터 연결

필드를 `public`으로 열지 않고 인스펙터에서 연결하는 `SerializeField` 기본 패턴을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

csharp
[SerializeField] private float moveSpeed = 5f;
[SerializeField] private Transform target;

설명

  • SerializeField는 private 필드를 인스펙터에 노출할 때 사용합니다.
  • 외부 스크립트에서 무분별하게 값을 바꾸지 못하게 막으면서도, 디자이너가 값 조정은 할 수 있게 해줍니다.
  • Unity에서는 캡슐화와 에디터 편의성을 동시에 챙길 때 가장 자주 쓰는 속성입니다.

짧은 예제

csharp
[Header("Combat")]
[SerializeField] private int maxHp = 100;
[SerializeField] private GameObject hitEffect;

빠른 정리

| 선언 방식 | 인스펙터 | 외부 접근 | | --- | --- | | public int hp; | 보임 | 가능 | | [SerializeField] private int hp; | 보임 | 불가 | | private int hp; | 안 보임 | 불가 |

주의할 점

값은 인스펙터에서 보이는데 코드에서 null이라면, 프리팹 인스턴스나 씬 오브젝트에 실제로 연결이 되어 있는지부터 확인하세요.

참고 링크

2 sources