Devops

유니티 에셋번들 빌드의 의미와 자동화

Tennessee201 2023. 11. 5. 17:54
728x90

기본적으로 유니티에서 에셋번들이란 아래와 같다.

에셋번들 : 에셋(모델, 텍스쳐, 씬, 프리맵 등..) 들의 묶음.

 

위와 같이 에셋의 묶음인 에셋번들을 별도 빌드시, 이를 런타임에서 사용할 수 있다.

이를 통하여 DLC를 제공하거나, 컨텐츠를 패치하는 등의 작업이 가능하다. 


에셋번들을 사용하는 이유

 

이와 같이 에셋번들빌드를 수행하는 이유는 다양하며, 특히 용량에 민감한 모바일플랫폼에서는 최초 앱 배포 시에는, 적은 용량을 배포하고 추후 서버에서 에셋들을 받도록 할 수있다. 

 

추가적으로 업데이트 혹은 픽스시, 앱 자체를 스토어에서 업데이트 하는것이 아닌, 앱 내에서 처리가 되기에,기존 사용자의 이탈률도 상대적으로 낮출수있다는 수치적 이점이 있다. 


에셋번들의 성능적 이점

 

기본적으로 유니티 프로젝트를 빌드할 때 모든 에셋들은 유니티상의 컴포넌트로 저장이 된다. 이 때 메타데이터 생성과 같은 유니티 내의 처리도 진행된다

그렇기에 에셋번들을 사용하여 사용할 에셋이 있는 번들을 로드하고 이를 꺼내 사용하는 방식을 쓰게 된다.

에셋은 기본적으로 디스크 상의 파일이다. (JPG, PNG ..) 

반면 유니티 엔진 오브젝트는 유니티가 시리얼라이즈한 데이터의 모듬이다. (mesh, sprite .. )

그렇기에, 유니티에 새로운 에셋을 추가하면 임포팅하는 과정을 거치는 것이다. 이 과정에서 에셋을 플랫폼에 맞는 적절한 오브젝트로 컨버팅한다.

이러한 과정은 오래 걸리기 때문에 라이브러리에 에셋의 임포트 결과가 캐싱되어 저장된다. 

 

에셋번들은 원본파일이 아니라, 유니티에서 쓸 수 있도록 '시리얼라이즈된' 오브젝트이다.

 

728x90