Record/TIL

[Unity] ScriptableObject (스크립터블 오브젝트)

석영 2024. 6. 19. 23:06
반응형
스크립터블 오브젝트(ScriptableObject)

스크립트 기반의 데이터 컨테이너이다. 데이터를 저장하고 관리하기 위한 컨테이너 느낌이다.

 

장점:

  1. 메모리 관리와 성능 향상: 스크립터블 오브젝트는 인스턴스화된 MonoBehaviour보다 경량화되어 있어 메모리 사용량이 적고, 여러 인스턴스 간 데이터 공유가 좋다.
  2. 데이터 중심 설계: 주로 데이터를 저장하고 관리하는 용도로 설계되어 있어, 게임의 다양한 설정, 상태, 아이템 등을 쉽게 표현하고 변경할 수 있다. (기획자도 쉽게 변경가능)
  3. 재사용성: 데이터를 포함하는 스크립터블 오브젝트는 프로젝트 전반에서 재사용할 수 있다.
  4. 직렬화와 저장: 유니티의 직렬화 기능을 이용해 파일로 저장하거나 네트워크를 통해 전송할 수 있다. 

 

단점:

  1. 디자인 및 구현 복잡성: 스크립터블 오브젝트를 잘못 설계하면 복잡성이 증가할 수 있다. 소규모 프로젝트라면 사용하기 좋지만 프로젝트가 커지면 관리가 어려워질 수 있다.
  2. 인스턴스 관리 어려움: 동적으로 생성 및 관리하는 데 있어 추가적인 로직이 필요할 수 있다.
  3. 유니티의 특정 기능에 종속적: 스크립터블 오브젝트는 유니티의 특정 직렬화 방식에 종속적이기 때문에, 다른 환경에서의 사용이나 데이터 호환성을 고려해야 할 때 일부 제약이 있을 수 있다.
공식문서

>> 유니티 공식문서

 

ScriptableObject - Unity 매뉴얼

ScriptableObject는 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너입니다. ScriptableObject의 주요 사용 사례 중 하나는 값의 사본이 생성되는 것을 방지하

docs.unity3d.com

 

 

반응형