- 기술 면접 예상 질문 - ScriptableObject이란 무엇이며 어떻게 사용되나요
기술 면접 예상 질문 - ScriptableObject이란 무엇이며 어떻게 사용되나요
ScriptableObject는 유니티에서 제공되는 데이터 관리 오브젝트로 게임 오브젝트를 만들지 않고 데이터만 저장하는 오브젝트로 유니티 에디터 상에서 데이터를 직접 수정하고 적용할 수 있습니다.
ScriptableObject를 상속받은 클래스를 ScriptableObject로 빌드 전에 미리 생성할 수 있습니다.
생성된 ScriptableObject의 데이터는 하나만 존재하게 다른 클래스에서 참조 형식으로 사용하게 됩니다.
그래서 ScriptableObject는 편의성, 메모리 최적화, 재사용성,유용성 측면에서 장점이 있습니다
빌드를 거쳐야 한다는 단점이 있지만 Addressable과 함께 사용하면 실제 오브젝트가 아닌 주소를 빌드하여 이러한 단점을 해결할 수 있습니다
진행한 프로젝트에서 SO를 사용해서 카드, 몬스터 데이터를 관리했는데
SO에 여러가지 데이터들과, 이미지들의 리소스도 함께 포함해서 간단하게 관리할 수 있었습니다.
대신 데이터를 JSON으로 세이브&로드하기 위해서 각 저장할 데이터에서는 SO들을 id값으로 저장하고
실제 데이터가 사용될때 id 값을 기반으로 ScriptableObject를 참조해서 사용한 경험이 있습니다.