Addressables는 에셋을 주소로 불러온다
Addressables는 프로젝트 에셋을 주소로 찾아 불러오는 시스템입니다. 에디터에서 주소와 그룹을 정리해 콘텐츠 빌드를 만들면, 코드에서는 파일 경로 대신 알아보기 쉬운 키로 프리팹이나 리소스를 요청할 수 있습니다.
처음부터 모든 파일을 Addressable로 바꾸지는 마세요. 시작할 때 바로 필요하지 않거나 나중에 업데이트·교체할 가능성이 큰 에셋부터 골라 적용하는 게 낫습니다.
빌드 전에 정할 네 가지
주소는 사람이 알아보기 쉽고 오래 써도 바뀌지 않는 이름이 좋습니다. Group은 build/load path, update restriction, packing schema 같은 설정을 공유하는 구성 단위입니다. 같은 Group이라고 무조건 한 번에 로드되는 것은 아니며, 실제 AssetBundle 묶음은 Bundle Mode에 따라 달라집니다.
Label은 여러 Group의 에셋을 런타임 키나 Groups 창 필터로 함께 찾을 때 씁니다. Pack Together By Label을 쓰면 Label 조합이 번들 경계가 되므로 조합이 늘수록 번들 수도 늘 수 있습니다.
- 주소 이름 규칙을 먼저 정합니다. 예:
ui/popup-settings,characters/player/default. - build/load path와 update restriction을 공유할 에셋끼리 Group을 나누고 Bundle Mode를 확인합니다.
- 런타임에서 함께 찾을 분류만 Label로 만들고, Label 조합이 번들 수에 미칠 영향을 확인합니다.
- 콘텐츠 빌드 결과를 버전 관리할지, 빌드 산출물로만 둘지 팀에서 미리 정합니다.
로드와 해제에서 많이 틀리는 부분
에셋을 주소로 불러온 뒤 참조를 해제하지 않으면 reference count가 남아 unload 시점을 추적하기 어려워집니다. 반대로 너무 일찍 해제하면 dependency를 더 이상 사용하지 않는다고 Addressables에 잘못 알리게 됩니다. LoadAssetAsync로 받은 handle은 Release, InstantiateAsync로 만든 인스턴스는 ReleaseInstance로 수명 주기를 맞추세요.
처음부터 원격 배포까지 붙이지는 마세요. 로컬 그룹 하나로 빌드, 로드, 해제를 먼저 확인한 뒤 배포 구성을 늘리면 어디서 틀렸는지 찾기 쉽습니다.
공식 문서 대조
검증일
Unity 6과 Addressables 4.0.2 공식 문서를 대조했습니다. 별도 프로젝트에서 직접 재현한 결과는 아닙니다.