오늘은 스탠다드반 특강내용 중 몇가지를 정리해 볼려고 한다.
데이터의 저장
직렬화
- 프로그래밍한 복잡한 객체를 바이트들의 배열로 만들어버리는 작업
- 모든 클래스를 직렬화할 수 있는 것은 아닙니다.
- 유니티에서 직렬화 가능한 필드 타입
- serializable속성이 있는 비추상, 비일반 커스텀 클래스
- serializable 속성이 있는 커스텀 구조체
- UnityEngine.Object에서 파생된 오브젝트에 대한 레퍼런스
- 기본 데이터 형식(int, float...등)
- 열거형 타입
- 특정 Unity 내장타입: Vector2, Vector3, Rect, Quaternion, Color,...등
PlayerPrefs
- PlayerPrefs는 게임 세션 간에 플레이어 환경설정을 저장하는 클래스
내 TIL에서 제일 비중이 높지 않을까...- 이 클래스는 문자열, 실수, 정수 값을 사용자의 플랫폼 레지스트리에 저장할 수 있습니다.
- 유니티는 암호화하지 않고 로컬 레지스트리에 PlayerPrefs를 저장합니다. -> 민감한 데이터를 저장하는 데에는 적합하지 않습니다.
- 유니티는 애플리케이션이 실행되는 운영 체제에 따라 PlayerPrefs 데이터를 다르게 저장합니다.
- Playerprefs.Save(): 사실 사용하지 않아도 저장하는데 아무 지장이 없다. 오히려 사용할 수록 성능저하를 일으킨다.
CSV
- CSV(Comma-Separated Values)는 데이터를 저장하고 교환하는 데 사용되는 간단한 파일 형식입니다.
- 이 형식은 각 데이터 항목이 쉼표로 구분되며, 각 줄이 하나의 데이터 레코드를 나타냅니다.
- 쉼표로 구분되기 때문에 데이터에 쉼표를 집어넣는것을 주의해야 한다.
JSON
- JSON(JavaScript Object Notation)은 경량 데이터 교환 형식입니다.
- 유니티에서는 JSON을 사용하여 데이터를 저장하고 읽어올 수 있습니다.
- JSON은 사람과 기계 모두에게 읽기 쉽고 쓰기 쉬운 형식이며, 다양한 프로그래밍 언어에서 지원됩니다.
Scriptable Object
- Scriptable Object은 유니티 엔진에서 사용되는 데이터 컨테이너입니다.
- 이를 통해 게임 오브젝트나 씬에 종속되지 않고 데이터를 저장하고 공유할 수 있습니다.
- Scriptable Object는 주로 게임의 리소스, 설정, 상태 등을 관리하는 데 사용됩니다.
- 읽기에서만 사용, 쓰기에서는 사용하면 안됨.
Binary Formatter
- Binary Formatter는 유니티에서 사용되는 직렬화 도구입니다.
- 이를 통해 객체를 이진 형식으로 직렬화하고, 이진 형식을 다시 객체로 역직렬화할 수 있습니다.
- Binary Formatter는 주로 파일 저장 및 로드에 사용되며, 데이터를 보다 효율적으로 관리하고 공유할 수 있습니다.
- 값을 수정하는건 되지만 구조의 수정은 불가능. 값을 추가할 공간이 없기 때문.
데이터 저장에 많이 쓰이는 메소드 프로퍼티들
- Application.persistentDataPath
Unity - Scripting API: Application.persistentDataPath
Unity - Scripting API: Application.persistentDataPath
This value is a directory path (notice the difference in slash directions on different operating systems according to Path.DirectorySeparatorChar), where you can store data that you want to be kept between runs. When you publish on iOS and Android, persist
docs.unity3d.com
- File.Exists
File.Exists(String) 메서드 (System.IO)
File.Exists(String) 메서드 (System.IO)
지정된 파일이 있는지를 확인합니다.
learn.microsoft.com
- File.ReadAllText
File.ReadAllText 메서드 (System.IO)
- File.WriteAllText
File.WriteAllText 메서드 (System.IO)
File.WriteAllText 메서드 (System.IO)
새 파일을 만들고 파일에 내용을 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있는 경우 잘리고 덮어씁니다.
learn.microsoft.com
'TIL' 카테고리의 다른 글
2023/12/19 TIL (0) | 2023.12.19 |
---|---|
2023/12/18 TIL (1) | 2023.12.18 |
2023/12/14 TIL (ScriptableObject / 정규표현식) (0) | 2023.12.14 |
2023/12/13 TIL (0) | 2023.12.13 |
2023/12/12 TI (1) | 2023.12.12 |