Devs/Unity

Unity Addressables + AWS S3 적용 삽질 기록 — BuildPath 에러 해결법

whawoo 2025. 6. 30. 23:24
반응형

✨ 들어가며

Unity Addressables을 AWS S3와 연동해서 리소스를 원격으로 로드하는 작업을 진행했습니다. 그런데 생각보다 삽질을 많이 했습니다. 특히 가장 골치 아팠던 부분은 바로 이 에러입니다.

BuildPath for group 'Lobby Group' is set to the dynamic-lookup version of StreamingAssets, but LoadPath is not.
BuildPath: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/RemoteAssets'
LoadPath: 'https://whawoo-game-addressable.s3.ap-northeast-2.amazonaws.com/RemoteAssets'

이거 보고 멘붕 오신 분? 저만 그런 거 아니죠.

🚩 문제 상황

처음 Addressables Group의 BuildPath와 LoadPath를 이렇게 설정했습니다.

항목값
BuildPath [UnityEngine.AddressableAssets.Addressables.BuildPath]/RemoteAssets
LoadPath https://whawoo-game-addressable.s3.ap-northeast-2.amazonaws.com/RemoteAssets
 

→ 그리고 빌드 버튼을 누르는 순간 저 에러가 뜨더군요.


🧠 원인 분석 — 공식 문서에도 안 나옴

결론부터 말하면,

BuildPath와 LoadPath는 '같은 타입'이어야 한다.

  • 둘 다 런타임 변수 기반이면 OK
  • 둘 다 문자열 직접 입력이면 OK
  • 그런데 변수 + 문자열 조합이면 바로 에러

→ 이게 Addressables 내부에서 강제하는 룰입니다. 공식 문서에도 이거 명확하게 안 나와 있어서 대부분 사람들이 삽질하면서 깨닫습니다.


🔥 해결법 — 단순하지만 명확하다

✅ 그냥 이렇게 쓰세요.

항목값
BuildPath Library/com.unity.addressables/aa/Android/RemoteAssets
LoadPath https://whawoo-game-addressable.s3.ap-northeast-2.amazonaws.com/RemoteAssets
 
  • BuildPath도 문자열로 명시적 입력
  • LoadPath도 문자열로 명시적 입력

→ ✔️ 완벽하게 동작합니다.

❌ 그리고 이렇게 하면 안 됩니다.

항목값
BuildPath [UnityEngine.AddressableAssets.Addressables.BuildPath]/RemoteAssets
LoadPath https://~~.amazonaws.com/RemoteAssets
 

→ ✔️ 무조건 에러 납니다.


✔️ 프로파일 변수는 그냥 문자열 매핑이다

Addressables Profiles 창에서 우리가 흔히 쓰는 [RemoteBuildPath], [RemoteLoadPath]는 실제로 동적인 코드가 아닙니다.

[RemoteBuildPath] → 'Library/com.unity.addressables/aa/Android/RemoteAssets'
[RemoteLoadPath]  → 'https://whawoo-game-addressable.s3.ap-northeast-2.amazonaws.com/RemoteAssets'

→ 단순 문자열 치환만 합니다. 그래서 런타임 변수처럼 쓰면 안 됩니다.

💡 실무에서의 팁

방식추천 여부
문자열 명시 🔥 강력 추천
프로파일 변수 ⚠️ 조심 — 내부 꼬임 자주 발생함
 

실제로 Unity 커뮤니티나 실무에서도 이 방법(문자열 명시)이 훨씬 안정적이라는 공감대가 많습니다.


🎯 총정리 — 이 글의 핵심

  • ✔️ Addressables BuildPath와 LoadPath는 같은 타입이어야 한다.
  • ✔️ 가장 안전한 방식은 둘 다 문자열 명시.
  • ✔️ 유니티 Addressables는 내부 메타 꼬임이 잦다. 문자열로 명시하면 대부분 해결된다.

🔥 덤 — 에러 메시지 뜨면 바로 점검하세요

BuildPath for group 'XXX' is set to the dynamic-lookup version of StreamingAssets, but LoadPath is not.

→ 무조건 BuildPath, LoadPath 타입 불일치입니다. 바로 고치세요.

✔️ 마치며

이건 진짜 기록해두지 않으면 또 삽질합니다. 저 포함해서요.
이 글이 누군가의 시간을 아껴주길 바랍니다.

반응형