Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- OnEnable
- 초기화
- LateUpdate
- 저장
- Unity
- Transform
- AWAKE
- C#
- 죽림고수
- protected
- 게임제작
- iNTERNAL
- private
- 불러오기
- Update
- 모작
- 오브젝트
- 게임개발
- ScriptableObject
- LINQ
- start
- FixedUpdate
- 이동
- 직렬화
- 이벤트 함수
- public
- 접근 제한자
- JSON
- SerializeField
- 게임모작
Archives
- Today
- Total
정명직의 게임개발
[Unity] SerializeField, Serializable ?? 본문
개발을 하다보면 변수를 선언할 때 인스펙터 창에서 접근할 수 있게 접근제한자를 public으로 선언한다.
하지만 public을 사용하면 외부 스크립트에서도 접근할 수 있게 된다.
그래서 인스펙트 창에 노출하고 외부스크립트로 부터 변수를 감추고 싶을 때 SerializeField
을 사용한다.
SerializeField
접근 제한자 “private”를 통해 객체의 정보를 은닉하고, 캡슐화는 유지하면서, 유니티 에디터의 Inspactor에서 값을 변경하고 싶을 때 사용한다.
반대로 변수에 접근제한자가 “public”으로 지정되어 있지만 유니티 에디터 Inspactor에 노출을 막기위해서는 [HideInInspactor]
키워드를 사용하면 된다.
Serializable
사용자가 정의한 클래스(class) 또는 구조체(Structure)의 정보를 유니티 에디터 Inspactor에 노출시킨다.
위와 같이 사용자 정의 클래스의 윗줄에 [Serializable]
키워드를 붙이고, C# 스크립트 메인 클래스에서 해당 클래스의 객체를 생성하면 아래와 같이 Inspactor에 노출되어 값을 지정할 수 있습니다.
정리
- 변수의 값이 외부객체로 부터 변경되면 안되지만 Inspactor에서 값을 변경하고 싶을 때 SerializeField 사용
- 클래스(class) 또는 구조체(Structure)를 Inspactor에 노출시키고 싶을 때 Serializable키워드 사용
'Unity' 카테고리의 다른 글
[Unity] ScriptableObject 한방에 이해하기 (1) | 2023.07.10 |
---|---|
[Unity] 오브젝트를 움직여 보자! (2) | 2023.07.05 |
[Unity] JSON 저장 & 불러오기 구현하기 (2) | 2023.07.03 |