2024. 6. 23. 03:30

유니티에서 사용하는 리소스를 관리하기 위한 패키지입니다.

 

유니티는 리소스의 경로를 'Resource'폴더에서만 관리해야 해서 불편합니다. (방법이 없는 건 아닙니다.)

거기다 이 폴더의 내용은 자동 로딩이라 메모리를 미리 먹어버린다는 문제도 있습니다.(씬 기준)

별도로 리소스를 관리하는 경우 개발(에디터)과 배포 시 경로가 달라진다는 문제도 있습니다.

 

그러다 보니 리소스를 동적으로 관리하는 라이브러리가 필요한데...

어드레서블(Addressable)이 리소스를 동적으로 관리하는 패키지입니다.

 

메모리에 올리는 것뿐만 아니라 리소스를 배포 후에 다운로드하여 관리하거나 패치하는 기능도 들어 있습니다.

 

설치에서부터 사용까지 한 번에 따라 할 수 있도록 4부작으로 작성하였습니다.

어드레서블(Addressable)의 기능이나 UI에 대한 내용은 검색하면 잘 설명돼있는 글이 많으므로 이 시리즈에서는 다루지 않습니다.

 

연관글 영역

 

 

* 이 예제에서는 프리팹만 다룹니다. *

 

 

1. 설치 

창 > 패키지 관리자

를 선택하여 '패키지 관리자'를 열어 줍니다.

 

 

'패키지: Unity 레지스트리'로 설정하고 'Addressable'를 검색합니다.

검색된 'Addressable'를 설치해 줍니다.

 

 

2. 'Addressables Groups' 확인하기 

설치가 제대로 되었다면 

창 > 에셋 관리 > Addressables > 그룹

을 선택해 줍니다.

 

 

아래와 같이 'Addressables Groups'가 열립니다.

 

 

3. 리소스 등록 

리소스를 등록하면 ' Addressables Groups'에 표시됩니다.

 

프리팹을 선택해 보면 아래와 같이 'Addressable'항목이 생겼습니다.

이것은 체크하면 'Addressables Groups'에 등록되고 리스트에 표시됩니다.

(이때 어드래서블에서 사용하는 경로가 생성됩니다.)

 

 

그룹을 추가하거나 라벨(Lable)을 추가하여 다양한 방법으로 관리할 수 있습니다.

 

이때 생성된 어드래서블 경로(Path)는 어느 환경에서도 동일하게 사용됩니다.

 

 

4. 빌드하기 

빌드하면 'Addressable'에서 등록된 리소스들을 번들하는 작업을 하게 됩니다.

 

4-1. 환경 맞추기 

배포할 때와 동일한 환경을 만들기 위해 'Play Mode'를 변경해야 합니다.

 

 'Addressables Groups'에서 'Play Mode Script'를 선택합니다.

'Use Existing Build'를 선택합니다.

 

이렇게 하면 리소스를 등록했을 때 빌드해야지만 동작합니다.

 

평상시에는 'Use Asset Database'를 선택하여 테스트하고 배포와 동일한 환경을 만들고 싶을 때만 'Use Existing Build'로 바꿔 사용해도 됩니다.

저는 그때그때 에디터환경과 배포 환경을 같이 확인하려고 이렇게 합니다.

(유니티를 못 믿어서 이런 건데.... 릴리즈에서도 동작하는 줄 알고 작업했다가 다시 작업한 적이 너무 많아서 그렇습니다 ㅎㅎㅎ)

 

 

4-2. 빌드하기 

'Play Mode'를 'Use Existing Build'로 해놨거나

릴리즈라면 빌드해야 등록된 리소스를 사용할 수 있습니다.

 

 'Addressables Groups'창에서 'Build'를 선택합니다.

New Build > Default Build Script

를 선택하여 빌드합니다.

 

 

빌드가 끝나면 어드레서블 리포트(Addressable Report)가 표시됩니다.

에러가 있다면 콘솔에 표시됩니다.

 

 

 

마무리 

테스트 프로젝트 - dang-gun/UnitySamples/AddressableSamples

이제 어드레서블(Addressable)을 사용하기 위한 준비가 끝났습니다.

이 기능이 고급 유저를 위한 기능이라서 그런지 가볍게 설명한 글을 찾기가 힘들어서 작성하고 있습니다 ㅎㅎㅎㅎ

 

리소스 관리기능을 만들다가 생각해 보니 '이런 라이브러리가 없을 리가 없는데?'라는 생각으로 검색해 보니 있네요;;;

AI 쳇봇 덕분에 쉽게 검색해서 찾았습니다.