본문 바로가기
Unity

[Unity] 어드레서블, 에셋 번들 관련 참고 자료 모음

by 소리쿤 2022. 6. 6.

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

https://www.youtube.com/watch?v=Lx61ZEKEvnQ&list=PLYpo8Wc5kpUrl4FdPzSH32Focot7V0IBI&index=2 

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

 

https://ssabi.tistory.com/12

 

[Unity3D] 에셋번들(AssetBundle) 빌드

에셋번들(AssetBundle) 에셋번들은 에셋(모델, 텍스처, 프리팹, 오디오 클립, 씬 등)의 묶음을 의미합니다. 에셋번들을 이용하면 프로그램 실행중에 동적으로 에셋을 로드할 수 있습니다. 에셋번들

ssabi.tistory.com

 

https://blog.unity.com/kr/technology/learn-to-save-memory-usage-by-improving-the-way-you-use-assetbundles

 

메모리 사용량을 절감하는 에셋 번들 사용법 | Unity Blog

에셋 번들에 에셋을 정리할 때는 종속성에 유의해야 합니다. Unity는 에셋 번들 토폴로지와 상관없이 (리소스 폴더에 있거나 리소스 폴더와 관련된) 애플리케이션 바이너리 내에 존재하는 에셋과

blog.unity.com

https://blog.unity.com/kr/games/addressable-asset-system

 

어드레서블 에셋 시스템 | Unity Blog

어드레서블의 주된 기능은 로드할 대상이 되는 에셋과 에셋이 로드되는 위치 및 방식을 분리하는 것입니다. 씬, 프리팹, 텍스트 에셋을 비롯한 모든 에셋을 어드레서블(위치 지정 가능)로 표시

blog.unity.com

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

 

Addressables | Addressables | 1.20.0

Addressables The Addressables system 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 from an

docs.unity3d.com

https://gist.github.com/MeowKim/904087f7c2b372a5df72a0925add85d6

 

Unity Addressable Asset System 가이드

Unity Addressable Asset System 가이드. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

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

https://www.youtube.com/watch?v=3f2XjEGDZ2s&t=4s 

https://www.youtube.com/watch?v=qL7PXAFNP5M&list=PLmRK0lH8TNCo7K4xmLpEov4llbVTwf29s&index=6 

https://young-94.tistory.com/47

 

Unity Addressable Asset System 기본 개념

[ * 필자 Unity 버전 == 2020.3.6f1 ] Addressable Asset System (2018.2 이상의 버전부터 지원) - Assets을 좀 더 효율적으로 관리하기 위해 새롭게 나온 시스템 [새로운 시스템이나 Asset Bundle을 기반으로 작..

young-94.tistory.com

 

아직 잘 몰라서 자신있게 요약할 수 없으나, 우선 공부 전에 미리 헤드라인을 끄적여두면,

 

유니티에서 사용되는 Asset 파일들 (prefab, scene 등의 유니티 네이티브 에셋, mp3, png 등 외부 에셋 등 포함) 

을 AssetBundle이라는 단위로 묶는다.

 

AssetBundle은 특정 기준으로 패키징하여 (게임의 상황에 따라 적절한 기준으로),

상황에 따라 이 번들을 로드하고, 저 번들을 언로드하며 메모리 관리를 할 수 있게 해준다.

 

Resource 폴더에 들어간 에셋들은 모두 메모리에 로드된 상태를 유지하며,

단순히 인스펙터에 리소스를 메타파일 guid를 통해 링크하게 되면

어느 에셋이 올라가있고, 내려가 있고를 관리할 수가 없어지기 때문에...

 

> 모바일은 Resource 폴더를 모두 메모리에 올리며 어플리케이션 로드 시간이 길어지기 때문에

에셋 번들이 필수적...

 

더욱이 이 AssetBundle로 패키징하게 되면, 소스 코드와 리소스가 거의 완벽히 분리되며,

게임 내 소스 코드 변화없이 리소스만 추가하여 어플리케이션을 업데이트할 때,

새 실행 어플리케이션의 보급없이 리소스 패치만으로 업데이트가 가능해진다.

(CDN에서 에셋번들을 내려받아 사용한다는 전제하에)

 

Lua나 다른 어떤 수단을 쓴다면 리소스 패치에 소스 코드 패치를 묶어갈 수 있다고 하는데...

권장 사항은 아니라고 함 (가능은 함) 

 

하지만 AssetBundle은 어렵다.

에셋 간의 종속성을 파악하고, 중복되지 않도록 올바르게 로드하는 책임이

사용자에게 있기 때문에 코드가 복잡해지기 일쑤라고 함

 

(아래 링크 6:54 참고)

https://www.youtube.com/watch?v=3f2XjEGDZ2s&t=8s

 

이러한 AssetBundle을 한번 더 추상화하여 감싸 Addressable로 만들었고,

2019 이후 버전에선 필히 Addressable을 사용하라고 말한다.

 

 

'Unity' 카테고리의 다른 글

[Unity] 유니티의 뷰 프러스텀, 오클루전 컬링  (0) 2022.06.21
[Unity] 포스트 프로세싱?  (0) 2022.06.11
[Unity] UnityEngine.Object의 null 체크  (0) 2022.06.01
[Unity] ExecuteInEditMode  (0) 2022.03.08
[Unity] 유니티 Tip 모음  (0) 2022.02.19