인프런 커뮤니티 질문&답변

tmdgur0147님의 프로필 이미지

작성한 질문수

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

SkillSystemWindow

데이터베이스 생성 Resources 폴더를 써도 될까요?

24.07.24 15:54 작성

·

73

0

현재 강의를 듣고나서 이를 바탕으로 저만의 시스템을 만들어보려고 합니다.

강의 스킬시스템윈도우 영상에서

AssetDatabase.CreateFolder("Assets/Resources", "Database");

와 같이 Resources 폴더를 생성하고 그 안에 SO를 차곡차곡 넣어주는데, 제가 어드레서블을 사용할 예정이라 Resources 폴더를 만들지 않고 필요한 리소스들을 어드레서블을 통해 관리할려고 했습니다.

그런데, 이 강의에서 보면 리소스폴더에 SO 파일만 넣어주니깐 용량이 거의 있지도 않은 수준이던데 이렇게 강의처럼 에디터에서 생성한 SO만 들어간다면 리소스폴더를 사용해도 무방할까요? 혹은 애초에 굳이 리소스 폴더가 필요한지도 궁금합니다. 강의에선 특별히 Resources.Load 함수를 사용하지 않더라구요.

답변 1

0

Developer G님의 프로필 이미지
Developer G
지식공유자

2024. 07. 24. 16:35

수강해주셔서 감사합니다.

얘기하신대로 SO 파일 자체가 용량이 크지 않아서 Icon으로 큰 사이즈의 개별 Sprite(아틀라스X)를 넣는게 아닌 이상 굳이 Addressables로 옮겨주시지 않아도 됩니다. 아직까지 Resources 폴더의 간편함 때문에 가벼운 Asset들은 Resources 폴더에 많이 넣습니다.
이 강의에서는 Resources.Load를 사용하진 않았지만, Database에서 Data 목록을 가져와야할 때(=Data를 Save&Load하거나 아이템 제작법을 찾을 때 등) Resouces.Load로 Database를 불러와 사용합니다.

Addressables로 옮겨주시면 추후에 번들을 이용한 Data 패치가 가능하다는 장점이 생기긴 합니다.

가장 좋은 방안은 SystemSettings와 같은 설정을 만들어서 Resources 폴더와 Addressables 둘 중 무엇을 사용할 것인지 선택할 수 있게 하는 것입니다. Addressables도 Code로 Group을 만들어서 Asset을 넣을 수 있는만큼 Database와 Data가 Create될 때 Resources 폴더가 아닌 개별 폴더에 Save되게하고 Code로 Addressables Group에 넣어주시면 됩니다. 다만, Addressables를 통합할 경우 SerializeField로 Data를 받고 있던 부분도 AssetReference로 받을 수 있게 수정 및 추가적인 작업을 해주셔야해서 적지 않은 작업이 필요할겁니다. 물론 이런 작업도 나만의 프레임워크를 만들어 가는 과정이라고 생각하시면 상당히 의미 있는 작업이 될 것이라 생각합니다.

감사합니다.