기본 패턴
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