728x90
반응형
둘 다 에디터의 인스펙터에 보이기 때문에 비슷한 듯 다른 두 가지에 대한 차이점을 정리하려고 한다.
public이란?
public은 클래스 외부에서도 접근 가능한 멤버를 정의할 때 사용하는 접근 제한자
public int health = 100;
- 인스펙터(Inspector)에서 값이 노출됨
- 외부 클래스에서도 object.health처럼 직접 접근 가능
- 매우 직관적이지만, 캡슐화(정보 은닉)가 깨질 수 있음
SerializeField는 무엇인가?
SerializeField는 private 변수임에도 인스펙터에서 보여지도록 해주는 Unity의 속성(Attribute)
[SerializeField]
private int speed = 5;
- 인스펙터에서는 public처럼 값이 보이고 수정 가능
- 외부 스크립트에서는 접근 불가능 (object.speed로는 접근 안됨)
- 코드에서는 캡슐화를 유지하고, 인스펙터 편의성도 확보 가능
예시 비교
public float moveSpeed = 5f; // 외부 접근 O, 인스펙터 노출 O
[SerializeField] private float jumpPower = 10f; // 외부 접근 X, 인스펙터 노출 O
private float gravity = 9.8f; // 외부 접근 X, 인스펙터 노출 X
728x90
반응형
'Unity 학습' 카테고리의 다른 글
Unity MonoBehaviour 클래스의 Awake, Start, Update 메서드의 개념 (0) | 2025.07.15 |
---|---|
유니티3D 문 열고/닫기 상호작용 만들기 (0) | 2025.06.19 |
Unity 오브젝트 풀링(Object Pooling)과 프리팹(Prefab)의 개념정리 (0) | 2025.06.19 |
Unity ScriptableObject의 개념과 MonoBehaviour와의 차이점 (0) | 2025.06.16 |
유니티 Starter Assets 무료 에셋을 이용한 3인칭 카메라 추적 만들기 (0) | 2025.06.10 |