공부/Unity
[unity]Serializable vs SerializeField
개발의 피
2023. 5. 6. 22:59
https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=90653
「SerializeField」와 「Serializable」 차이가 있나요 - 인디 게임 개발 마이너 갤러리
저어는 「SerializeField만 썼는데... 후자도 되더라구요
gall.dcinside.com
궁금해져서 찾아보다가 설명 찰떡같이 해준 글 발견...
Serializable
- 클래스나 구조체에 적용
- 구조체나 클래스위에 써주면 걔네의 public 변수들이 에디터에 구멍으로 보이게 되는거
유니티에서는 UnityEngine.Object 기반이 아니면 관리 안해주는데,
System.Object 기반을 유니티에서 관리하도록 하고 싶을 때 Serializable를 붙여서 관리 할 수 있도록
SerializeField
- 필드에 적용
- private, protected 필드를 Inspector에서 편집하고 싶을 때 (캡슐화는 유지)
- public이 아니라서 노출되지 않은 애들 에디터에 구멍 내달란 얘기
SerializedField는 유니티에서 이 변수도 관리해달라고 명시하는 것 (public field는 자동으로 관리 해줌)
+) 직렬화, 역직렬화 설명
https://youtu.be/qrQZOPZmt0w?si=R1m432u2y79ehzIo
직렬화 :오브젝트를 연속된 문장 형태나 연속된 바이트 데이터로 바꾸는 과정
역직렬화 : 전송된 데이터를 바탕으로 다시 객체를 생성하는 과정