오늘은 내가 사용은 했지만 코드를 써보지 않아서 팀원 코드를 보면서 공부 해보기로 하였다.
리소스 폴더의 단점
- 보통 에셋을 불러오는 방법은 리소스 폴더를 활용하는 것인데, 리소스 폴더에는 여러 단점이 있다.
- 빌드 용량 증가와 로딩 시간 지연
- 폴더 안에 있는 모든 에셋(Asset)은 빌드 시 게임에 자동으로 포함.
- 메모리 효율성 저하
- 로드된 에셋은 언로드(unload)가 명확하게 이루어지지 않으면 메모리에 계속 남아있음.
- 복잡한 유지보수와 관리
- 경로 문자열 의존성
- 에셋 종속성 파악의 어려움
이런한 단점들을 해결하기 위해서 에셋 번들 또는 어드레서블을 활용한다.
어드레서블의 장점
https://docs.unity3d.com/kr/Packages/com.unity.addressables@1.21/manual/AddressableAssetsOverview.html
- 빌드 용량 최적화 및 로딩 시간 단축
- 효율적인 메모리 관리
- 자동으로 메모리에서 해제하는 기능을 제공
- 중복된 에셋이 빌드되지 않도록 자동으로 관리
- 유연한 콘텐츠 업데이트 및 배포
- 원격 서버에 있는 에셋도 쉽게 로드
- 빌드 없는 업데이트
팀원 코드
- 팀원이 작성한 addressable 코드이다.
| ResourceLoader |
|---|
 |
 |
- 팀원이 구현한 코드를 보면, 두 가지 방법을 사용해서 에셋을 로드한다.
- 주소를 이용한 방법
- 라벨을 이용한 방법
- 주소를 이용한 방법은 주소를 전부 적을 필요가 있다보니, 조금 비선호하는 방식이다.
- 그래서 주로 라벨을 이용하여 사용하고 있다.
| 사용법 |
|---|
 |
 |
-
사용 하기 전에 등록이 필요하다.
-
옆에 BGM은 라벨이다.
-
그리고 맨 밑에는 asd로 되어 있는데 저것은 주소 값을 수정한 것이다.
-
즉 주소값을 원하는 스트링 값으로 변경하여 사용 가능하다.
-
파일명이나 위치가 수정되도 같은 코드를 이용해서 계속 불러올 수 있는 것이다.
| 등록 방법 |
|---|
 |
- 에셋 파일에 저렇게 Addresaable을 체크해주면 된다.
SoundManager
- 이 기능을 활용하여 SoundManager를 구성하였다.
-
BGM을 실행 시키는 코드이다.
-
GetBGMSound()는 라벨이 등록된 BGM들을 가져와서 Dictionary에 저장하는 코드이다.
-
그리고 이 딕셔너리에 있는 코드를 실행키는 PlayBGM 코드와
-
주소 값을 통해서 바로 실행시키는 PlayBGM 두 가지 다 코드를 작성하였다.
소감
사실 주소 값 변경 방법이 있는 줄 몰랐다. 팀원이 작성한 코드를 사용하다 보니 내가 공부한 것이 아니라 잘 몰랐는데, 오늘 다시 정리하면서 주소 값을 수정해서 사용할 수 있다는 것을 알게 되었다.