직렬화란
유니티에서 직렬화(Serialization)는 데이터의 구조나 오브젝트 상태를 에디터가 저장하고 나중에
재구성할 수 있는 포맷으로 자동 변환하는 프로세스를 말한다. 라고 유니티에서 말합니다.
직렬화를 사용하는 이유?
간단하게 생각하자면 데이터를 저장하여 다음 실행 때도 해당 데이터를 불러오고 싶을 때 쓰입니다.
여러게임에서 우리가 저장이라는 개념을 알고 있듯 직렬화는 해당 데이터를 불러오고 싶어 그 주소를 기억하고
있는 것과 같습니다.
직렬화할 수 있는 단순 필드 타입
Serializable 속성이 있는 비추상, 비일반 커스텀 클래스
Serializable 속성이 있는 커스텀 구조체
UnityEngine.Object에서 파생된 오브젝트에 대한 레퍼런스
기본 데이터 형식(int, float, double, bool, string 등)
열거형 타입
특정 Unity 내장 타입: Vector2, Vector3, Vector4, Rect, Quaternion, Matrix4x4, Color, Color32, LayerMask, AnimationCurve, Gradient, RectOffset, GUIStyle
직렬화할 수 있는 컨테이너 필드 타입
직렬화할 수 있는 단순 필드 타입의 배열
직렬화할 수 있는 단순 필드 타입의 List<T>
https://docs.unity3d.com/kr/2020.3/Manual/script-Serialization.html
직렬화의 종류
1.PlayerPrefs
유니티에서 제공하는 직렬화 중 하나입니다. 단순하고 간편하지만 그만큼 보안성이 떨어져
보통 사용하는 용도로는 설정 관련의 데이터 타입을 저장하는 데 쓰입니다. (볼륨 설정 저장 등)
데이터 저장
PlayerPrefs.SetString("PlayerData", SaveData);
데이터 불러오기
string loadData = PlayerPrefs.GetString("PlayerData");
프로퍼티
DeleteAll() : 모든 키와 값 제거
DeleteKey(string key) : 주어진 키 삭제 (키가 없으면 영향이 없다)
GetFloat(string key) or GetFloat(string key,float default) : 해당하는 키가 있다면 반환(float값)
GetInt(string key) or GetInt(string key,int default) : 해당하는 키가 있다면 반환(Int값)
GetString(string key) or GetString (string key,string default) : 해당하는 키가 있다면 반환(float값)
HasKey(string key) : 해당하는 키가 PlayerPrefs에 있다면 true 없다면 false를 반환
Save() : PlayerPrefs의 수정된 모든 사항을 저장
SetFloat(string key,float value) : 키와 값을 설정(float값)
SetInt(string key, int value) : 키와 값을 설정(Int값)
SetString(string key, string value) : 키와 값을 설정(string값)
2.CSV(Comma Separated Values)
이름에서 보았듯 필드 데이터를 쉼표(,)로 구분한 텍스트 파일입니다.
마이크로소프트 엑셀에서 csv 파일로 확장자를 지원하여 (csv utf-8 저장권장) 이러한 엑셀데이터를 가져오면 액셀의 행을 쉼표 열을 엔터로 구분한 형태의 데이터가 됩니다.
3.XML
4.JSON
5.SO
//다시 정리예정
'자료 관리' 카테고리의 다른 글
파티클 시스템 - 1 (메인 모듈) (0) | 2024.12.03 |
---|---|
AI 네비게이션 (0) | 2024.10.27 |
Light (Unity) (0) | 2024.10.25 |
out ref 키워드 (0) | 2024.10.25 |
시간 복잡도 (0) | 2024.10.23 |