말감로그

[Unity] 리소스 폴더 , 에셋 번들 , 어드레서블 알아보기 본문

Unity

[Unity] 리소스 폴더 , 에셋 번들 , 어드레서블 알아보기

habbn 2025. 8. 8. 02:05
728x90

유니티 자원 관리 종류

유니티에 파일로 된 자원을 관리하는 방법으로 3가지가 있다.

1. 리소스 (Resources)

2. 에셋번들 (AssetBundle)

3. 어드레서블 (Addressable)

 

리소스 폴더

장점

- 런타임에 리소스를 불러올 수 있다는 간편함

 

단점

- 모든 리소스가 빌드에 포함되기 때문에 빌드 크기 증가 

- 에셋이 많아질수록 실행시간이 오래 걸림

- 에셋 이름을 통해 로드되므로 에셋 이름 변경이 어려움

 

이런 문제점들을 보완할 수 있는 것이 바로 에셋 번들이다.

 

에셋 번들

에셋 : 유니티 프로제트 패널에 에셋폴더 안에 있는 모든 것들

번들 : 묶음

 

프로젝트 상에 존재하는 다양한 에셋들을 일정한 규칙으로 묶어서 정리하는 것을 에셋 번들이라고 한다.

또한 정리한 에셋 번들만 따로 빌드하는 것을 에셋번들 빌드라고 한다.

 

에셋 번들 빌드를 완료한 뒤에 전체 프로젝트를 빌드하게 되면 에셋 번들을 제외한 나머지 부분들로만 빌드하게 되어 총 용량이 줄어든다.

 

에셋 번들을 사용한 경우 에셋 번들을 다운로드 하는 과정이 필요하다. 애초에 애셋 번들은 따로 빌드를 했고 프로젝트 빌드할 때는 에셋 번들이 포함이 안됐기 때문이다.

 

에셋 번들 사용법

1. 원하는 에셋 폴더의 AssetBundle을 설정해줌

 

2. 에셋 번들을 빌드하는 코드 작성. 스크립트 생성

    -> Assets/Editer 폴더 안에 넣어줘야 함

 

3. 번들에서 오브젝트 로드해서 사용하기

    -> LoadManager 생성

 

4. 빌드 파일을 실행할 때 무조건 번들을 다운로드해서 빌드 파일 안에 추가해줘야 함

5. 몬스터가 죽거나 사용되지 않을 때 메모리에 할당되어있는 것을 수동으로 해제해줘야 함(언로드)

   -> asset.Unload(true);

 

 

장점

1. 용량 

스토어 같은 곳에 앱을 업로드할 때 용량 제한을 지켜야 하는 경우가 있지만 에셋 번들은 용량 제한으로부터 자유로움

2. 패치

수정사항이 있을 때 재설치 필요 없이 에셋 번들만 따로 다운로드 하면 되므로 업데이트가 편리해짐

 

단점

1. 번들의 종속성 문제

같은 이미지를 Asset A와  Asset B에 묶여있다면 같은 이미지 1개로 처리되는 것이 아니라 2개의 이미지로 인식된다.

2. 어려움 , 하드 코딩

 

이러한 에셋번들을 더 발전시킨 것이 어드레서블 에셋이다.

 

어드레서블 에셋

기존의 에셋 번들을 좀 더 편하게 사용할 수 있는 유틸리티로,

에셋에 주소를 지정하는 방식으로 주소로 에셋을 쉽게 로드할 수 있는 방법을 제공한다.

 

에셋이 서버에만 올라가고 앱에 들어가지 않기 때문에 차후 게임 업데이트 시 유리하다. 리소스 변화에 따른 불필요한 재업로드를 방지하기 때문이다.

 

에셋 위치에 상관없이 참조가 가능하다. 즉, 로드할 대상이 되는 에셋과 에셋이 로드되는 위치 및 방식을 분리하는 것이다. 그래서 에셋의 어드레스만 알면 되고 에셋의 실제 위치가 변경되어도 상관없다.

 

에셋번들의 종속성 문제를 해결

 

 

 


 

참고

https://dev-junwoo.tistory.com/159

https://www.youtube.com/watch?v=mC2d94bfI2w

728x90

'Unity' 카테고리의 다른 글

[Unity] NavMeshAgent Wrap  (0) 2025.07.02
[Unity] UI 위에 게임 오브젝트 띄우기  (0) 2025.05.17
[Unity] Cinemachine Collider  (0) 2025.05.01
네트워크 동기화  (0) 2025.02.22
[Unity] 디자인 패턴 - 오브젝트 풀링  (0) 2025.02.20