ScriptableObject : 많은 양의 데이터를 저장할 수 있는 데이터 상자, 클래스 인스턴스와는 다르다.
복사로 인한 메모리 사용을 줄이기 위해 많이 사용된다.
프리팹이 변하지 않는 데이터(MonoBehaviour scripts와 연결된)를 저장하고 있는 경우에 사용된다.
예를 들어, 기존에 플레이어가 100명 있다면, 기본 방식은 플레이어들에게 한 개의 아이템을
백 번 복사해서 나눠주는 방식이다. => 데이터 낭비
이 ScriptableObject 방식은 참조 방식으로, 아이템 데이터 상자를 하나 만들고, 이를 참조하도록 하는 방식이다.
이는 다음과 같은 장점이 있다.
- 메모리 절약 : 데이터를 한 번만 저장, 참조 방식으로 메모리 절약
- 관리 편리 : 아이템 데이터를 수정할 때에 한 번만 수정하면 됨
- 유지 기능 : 유니티 프로젝트 파일로 저장되어 있어 게임을 껐다 켜도 데이터 유지.
단점
- 플레이어별 데이터가 필요한 경우 : 개수,강화,획득 등은 개인적으로 관리해야 한다.
- 런타임 데이터 변경 : 런타임 도중 변경되면 변경이 사라진다.
- 대규모 데이터 관리 : 데이터가 많아지면 고나리하기 번거로움
참조 : https://docs.unity3d.com/kr/2023.2/Manual/class-ScriptableObject.html
'개념공부' 카테고리의 다른 글
Unity Animation with method (1) | 2024.12.22 |
---|---|
Static (0) | 2024.12.19 |
캡슐화(Encapsulation) (0) | 2024.12.15 |
트리의 회전과 AVL 트리 (0) | 2024.12.11 |
다익스트라 알고리즘(Dijkstra's Algorithm) (0) | 2024.12.10 |