[내일배움캠프 TIL] ScriptableObject

KYJ의 Tech Velog·2023년 9월 18일
0

TIL

목록 보기
32/71
post-thumbnail

Today I Learned

TIL을 주제를 선정하는 게 참 쉽지 않은 것 같습니다...

오늘은 유니티의 Scriptable Object에 대해 이야기해보고자 합니다.

Today I Done

알게된 것

Scriptable Object란 Unity에서 데이터를 저장하고 관리할 수 있는 유연한 데이터 컨테이너입니다. 재사용한 가능한 데이터나 설정을 저장하는 데에 주로 사용되죠.

보통 프리팹을 사용하는 프로젝트에 유용합니다. 프리팹을 인스턴스화할 때마다 해당 자체 데이터의 복사본이 생성됩니다. 프리팹을 여러 번 인스턴스화해야 하면 복사본이 여러 번 저장되면서 중복된 데이터가 저장되겠죠. 이 때 중복 데이터를 저장하는 대신 ScriptableObject를 이용해서 데이터를 저장하면 모든 프리팹의 레퍼런스를 통해 데이터에 접근할 수 있습니다. 메모리에 데이터 사본을 하나만 저장하게 되는 것이죠.

한마디로 하나의 ScriptableObject를 여러 GameObject가 참조하거나 재사용할 수 있다는 이야기입니다.

또한, Unity 에디터와 통합되어 Inspector 창에서 직접 수정하고 관리할 수 있습니다.

조금 더 자세하게 예시를 들어보겠습니다. 많은 좀비들이 플레이어를 쫓아오는 게임을 만든다고 합시다. 많은 좀비들이 계속해서 생성이 되겠죠. 그 때 좀비를 보통 프리팹으로 만들어서 인스턴스화합니다. 이 때, 같은 종류의 좀비의 데이터가 좀비 프리팹이 인스턴스화될 때마다 메모리에 쌓이면 데이터의 양이 엄청날 것입니다. 요즘엔 메모리 용량, 성능이 좋아서 괜찮아라는 마인드는 개발자로서 정말 잘못된 생각이라고 저는 생각합니다...

이 때 좀비의 정보들을 ScriptableObject로 만드는 것입니다. 그렇다면 하나의 ScriptableObject로 수많은 좀비들의 데이터를 관리할 수 있습니다.

Unity Manual을 참고하시면 개념을 더 자세하게 보실 수 있습니다. 제가 Unity를 오래 공부해오면서 느낀 것이지만 개념만 공부해서는 어떤 기능에 대해 알아가는 것은 어렵습니다. Unity의 경우, YouTube나 Google에 정말 수많은 레퍼런스들이 있기 때문에 참고하면서 직접 사용하면서 알아가는 것이 저는 더 좋다고 생각합니다.


Tomorrow's Goal

  • 게인 프로젝트 시작
  • 코드 카타 Clear
  • 알고리즘 문제 풀이 공유

0개의 댓글