GameDev/[Unity]
[유니티]Asset Bundles와 Addressables의 차이점 정리
Bit by Bit
2024. 11. 25. 19:11
728x90
1. Asset Bundles와 Addressables의 기본 개념
Asset Bundles
- Unity의 전통적인 리소스 관리 방식입니다.
- 특정 애셋(프리팹, 텍스처 등)을 번들로 묶어 빌드한 뒤 필요할 때 로드합니다.
- 파일 경로 또는 키(key)를 사용해 직접 관리하고 로드합니다.
Addressables
- Asset Bundles의 상위 개념으로, Unity에서 번들 관리의 복잡성을 줄이기 위해 개발된 시스템입니다.
- 애셋에 "주소(Address)"를 부여해 쉽게 참조하고 로드할 수 있습니다.
- 빌드와 의존성 관리, 업데이트 등이 자동화되어 있습니다.
2. Asset Bundles와 Addressables의 주요 차이점
사용 편의성 | 번들 빌드와 로드 로직을 직접 구현해야 함. | 자동화된 빌드와 로드 로직 제공. |
참조 방식 | 경로나 키(key)를 직접 관리. | 주소(Address)를 부여해 간단히 참조 가능. |
의존성 관리 | 의존성을 수동으로 관리해야 함. | 의존성을 자동으로 추적 및 포함. |
로드 방식 | AssetBundle.Load 등 명시적으로 처리. | 비동기 방식(LoadAssetAsync) 지원. |
빌드 및 업데이트 | 번들을 수동으로 빌드하고 관리해야 함. | 업데이트가 자동화됨. |
플랫폼 지원 | 여러 플랫폼에 맞게 설정을 수동으로 해야 함. | 플랫폼별 최적화가 자동으로 적용됨. |
프로파일링 | 번들 로드 상태를 추적하기 어려움. | Addressables Profiler를 제공해 상세한 추적 가능. |
학습 난이도 | 상대적으로 복잡함. | 더 간단하고 사용하기 쉬움. |
3. Addressables의 주요 장점
Addressables는 Asset Bundles의 단점을 개선하고 관리와 유지보수를 쉽게 만들어주는 시스템입니다. 주요 장점은 다음과 같습니다:
- 자동 번들 관리: Addressables는 내부적으로 Asset Bundles를 사용하지만, 이를 자동으로 빌드하고 관리합니다.
- 비동기 로드 지원: LoadAssetAsync를 통해 로드 작업을 비동기로 처리할 수 있어 게임 실행 중 끊김을 줄일 수 있습니다.
- 의존성 처리: 관련된 모든 의존성을 자동으로 추적해 번들에 포함하므로 수작업이 필요 없습니다.
- 다양한 로드 옵션: 로컬 파일뿐 아니라 원격 서버에서 리소스를 스트리밍하거나 업데이트가 가능합니다.
- 효율적인 메모리 관리: 사용하지 않는 리소스를 자동으로 언로드하거나 필요할 때만 동적으로 로드할 수 있습니다.
- 프로파일링 도구 제공: Addressables Profiler를 통해 리소스 로드와 메모리 사용 현황을 쉽게 추적할 수 있습니다.
4. Asset Bundles의 적합한 사용 사례
Addressables가 강력한 도구이긴 하지만, Asset Bundles이 적합한 경우도 있습니다:
- 프로젝트가 단순하고 리소스 관리가 복잡하지 않은 경우.
- 이미 Asset Bundles를 기반으로 구현된 프로젝트에서 구조 변경 없이 유지해야 할 때.
- Addressables 도입에 따른 추가 작업이 부담이 될 때.
5. 어떤 것을 선택해야 할까?
- 새 프로젝트: Addressables 사용을 권장합니다. 유연성과 관리 편의성, 최신 최적화 도구를 제공하므로 장기적으로 효율적입니다.
- 기존 프로젝트: Asset Bundles를 이미 활용하고 있다면 계속 유지하는 것도 가능하지만, Addressables로의 전환을 검토할 만한 가치가 있습니다.
결론
Addressables는 Asset Bundles의 단점을 개선한 최신 리소스 관리 시스템으로, 복잡한 작업을 간소화하고 최적화를 돕습니다. 반면, Asset Bundles는 단순한 프로젝트나 기존 시스템을 유지하는 데 유용할 수 있습니다. 프로젝트 요구사항에 맞춰 적합한 방식을 선택하시면 되겠습니다.
728x90