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://blog.unity.com/kr/games/addressable-asset-system
https://docs.unity3d.com/Packages/com.unity.addressables@1.20/manual/index.html
https://gist.github.com/MeowKim/904087f7c2b372a5df72a0925add85d6
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
아직 잘 몰라서 자신있게 요약할 수 없으나, 우선 공부 전에 미리 헤드라인을 끄적여두면,
유니티에서 사용되는 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 |