본문 바로가기

유니티/Addressable

[ Addressable ] 01 . Addressable이란

[ 학습 흐름 ]
  • 유니티의 에셋 관리 시스템의 "리소시스 - 에셋 번들 - 어드레서블"로의 발전 과정을 살펴본다 .
  • 어드레서블 시스템의 작동 방식에 대해 가볍게 살펴본다 .

[ 유니티의 Asset 관리 ]

1 . Resources

[ 설명 ]

- Unity의 기본 에셋 관리 시스템으로, Resources 폴더에 있는 모든 에셋을 빌드에 포함시킨다 .

[ 장점 ]

- 사용하기 간편하고, 스크립트를 통해 쉽게 에셋을 로드할 수 있다.

[ 단점 ]

- 프로젝트 빌드 크기가 증가한다 . 

- 빌드에 포함되는 모든 에셋이 메모리에 로드되기 때문에 메모리 관리가 어렵다.

- 애플리케이션 시작 시간이 길어진다 


2 . Asset Bundle

[ 설명 ]

- 에셋을 번들로 묶어 필요시 로컬에서 직접 로딩 / 원격 저장소에서 다운후 로딩이 가능하다 .

[ 장점 ]

- 프로젝트 빌드 크기를 작게 유지 할 수 있다 .

- 메모리를 효율적으로 관리 할 수 있다 .

[ 단점 ]

- 번들의 종속성 ( 같은 마테리얼을 가진 모델이 두개라면 마테리얼은 공유되지 못하고 2개로 존재한다 . )

- 하드 코딩 ( 저장소로부터 에셋번들과 에셋을 각각 '경로'와 '파일명'의 string으로 매칭시키기에 개선 프로그램 필요 )


3 . Addressable

[ 설명 ]

- 기존 에셋번들의 편의성을 개선한 시스템

- 에셋을 주소(address)로 관리하며 필요시 해당 주소를 통해 에셋을 로드한다 .

[ 장점 ]

- 유연하고 강력한 에셋 관리 기능을 제공, 빌드 및 로드 프로세스를 자동화한다.

- 메모리 관리가 효율적이다 .

[ 단점 ]

- 초기 설정과 이해가 다소 복잡하다 .


[ Addressable ]

[ Addressable 에 관하여 ]

https://docs.unity3d.com/Packages/com.unity.addressables@2.0/manual/AddressableAssetsOverview.html

어드레서블은 콘텐츠를 빌드하고, 로딩하고 관리하는 시스템이며, 주소를 통해서 관리하기 때문에

Addressable이란 이름으로 불린다.

 

기존 에셋번들의 편의성을 개선한 시스템이며 , 에셋 번들과의 차이점은 에셋을 저장소로부터 가져오는 방식이다 .

https://devshovelinglife.tistory.com/398

에셋번들은 중개자 없이 경로를 통해 가져왔지만 어드레서블은 address라는 중개자를 통해 가져온다 .

 

어드레서블의 주된 기능은 로드할 대상이 되는 에셋과 에셋이 로드되는 위치 및 방식을 분리한 것이다 .

모든 에셋에 어드레스를 할당하여 ,위치 상관없이 할당된 어드레스를 이용하여 참조한다 .

즉 , 어드레스를 통한 에셋의 관리 / 로딩 / 빌드를 통합한 것이다 .


[ Addressable를 사용하는 이유 ]

어드레서블은 다음과 같은 장점을 지닌다 .

  • 유연성 : 에셋을 호스팅 하는 위치를 유연하게 조절 할 수 있다 . 에셋을 앱과 함께 설치 혹은 다운이 가능하고 코드를 다시 작성하지 않아도 특정 에셋에 액세스 하는 위치의 변경이 자유롭다 .
  • 종속성 관리 : 로드하는 에셋의 모든 종속성을 시스템이 자동으로 로드 , 시스템에서 콘텐츠를 반환하기 전 모든 메시 . 셰이더 , 애니메이션등의 기타 에셋을 로드 가능하다 .
  • 메모리 관리 : 시스템이 에셋을 언로드 및 로드하고 레퍼런스를 자동으로 계산한다 . Addressable 패키지는 잠재적 메모리 문제를 식별하는 프로파일러 또한 제공한다 .
  • 콘텐츠 패킹 : 복잡한 종속성 체인을 매핑 , 이해하기에 에셋을 옮기거나 이름 변경시 효율적으로 에셋 번들을 패키징한다 . 로컬및 원격 배포를 위해 에셋을 준비하여 다운로드 가능한 콘텐츠와 앱 크기 축소를 지원 가능하다 .

 

이러한 장점이 있기에 어드레서블은 다음과 같은 상황에서 사용하기 좋다 .


[ Addressable 참고 사이트 ]

참고

[ Unity - Manual ]

https://docs.unity3d.com/Packages/com.unity.addressables@2.2/manual/index.html

 

Addressables package | Addressables | 2.2.2

Addressables package The Addressables package provides tools and scripts to organize and package content for your application, and an API to load and release assets at runtime. When you make an asset Addressable, you can use that asset's address to load it

docs.unity3d.com


[ Unity - Scripting API ]

https://docs.unity3d.com/Packages/com.unity.addressables@2.2/api/index.html

 

Addressables Script Reference | Addressables | 2.2.2

Addressables Script Reference This section of the documentation contains details of the scripting API that Unity provides for the Addressables package. The scripting reference is organized according to the classes available to scripts, which are described

docs.unity3d.com


[ 블로그 - 문서 번역 ]

https://zrr.kr/k4WH

 

유니티 Addressables 문서 번역 2장 에디터에서 어드레서블 관리

유니티 Addressables 문서 번역 2장 에디터에서 어드레서블 관리유니티/Addressables/유니티 문서/번역

velog.io


[ 블로그 - 튜토리얼 ]

https://blog.naver.com/cdw0424/221755856111

 

유니티(Unity) - Addressable(어드레서블) 사용법(7). 서버에서 다운로드하기 1편

사실 서버 사용까지는 안 다룰 생각이었는데 메일로 오는 질문들이 거짓말처럼 대부분 어드레서블의 서버 ...

blog.naver.com


[ 블로그 - 어드레서블로 최적화 하기 ]

https://unitysquare.co.kr/growwith/unityblog/webinarView?id=272

 

Unity Square

어드레서블 에셋 시스템으로 메모리 최적화하기

unitysquare.co.kr