Addressables 에셋을 어떻게 로드할지 결정하는 방식이 2가지가 있다.
1. Use Asset Database (fastest)
에디터에서 가장 빠르게 테스트할 수 있는 기본 설정
- Addressables 빌드 없이도 동작함
- 실제 에셋을 Assets/ 폴더에서 직접 로드함
- 즉, AssetDatabase.LoadAssetAtPath 같은 방식으로 바로 접근
- 번들로 묶이는 종속성 관계 무시
- 테스트나 빠른 개발에 유용
장점
- 에디터에서 가장 빠르게 실행됨
- 빌드 없이도 변경된 에셋을 바로 확인 가능
단점
- 실제 빌드된 번들과 다르게 동작할 수 있음
- Addressables의 번들 포함 여부나 누락 여부를 검증하기 어렵다
2. Use Existing Build (Android)
실제 Addressables 빌드를 한 뒤, 그 번들을 에디터에서 로드하는 방식
- 이전에 빌드한 Android용 Addressables 번들을 사용
- Addressables.LoadAssetAsync() 시 실제 번들 파일에서 로딩
- 실제 게임 실행 시와 거의 동일한 환경
- 종속성, 누락, 패킹 문제 등을 검증 가능
장점
- 실제 Android 빌드와 거의 동일한 결과를 에디터에서 확인 가능
- Addressables의 번들 구조, 종속성 누락 등 실전 이슈를 잡기 좋음
단점
- Addressables 빌드를 꼭 먼저 해야 함
- 빌드 시간이 걸림
- Play Mode가 느릴 수 있음
여기서 글쓴이는 Use Existing Build (Android) 사용 하면서 실제 환경에서 동작하는 것처럼 테스트 하기 위해서 에디터 상에서도 해당 모드를 사용하였다. 그러니까 이렇게 로드가 안된 것을 볼 수가 있다.
결론만 말하자면 Editor 상에서는 fastest mode를 사용해야 안깨지고, 빌드 시에는 android로 하면 깨지지 않는다고 하더라....
그러면 깨지는 이유는 뭘까?
1. 플랫폼 차이
- Android용으로 Addressables 빌드하면 AssetBundle은 Android 플랫폼 전용으로 빌드됨.
- 반면, 에디터는 기본적으로 Windows/macOS용 플랫폼에서 실행돼.
- 즉, Editor에서는 Android 전용 번들을 읽을 수 없어.
2. 셰이더 이슈
- 셰이더가 Android와 Editor용으로 빌드될 때 포맷이 다름.
- Sprites/Default 같은 기본 셰이더도 Android 번들로 들어가면 Editor에서는 매핑이 안 되거나 깨짐.
3. 에셋 경로와 종속성
- Android용 번들로 패킹된 리소스가 Editor의 리소스 구조와 다르기 때문에 종속성이 끊기거나 누락되는 경우가 있어.
결론!!
1. Editor에서는 Use Existing Build (Android) 사용하지 않는다.
→ 테스트 시 깨짐. 플랫폼 맞지 않음.
2. Android에서 직접 앱 실행해서 확인
Use Existing Build (Android)는 실제 Android 디바이스에서 실행할 때만 정확히 동작해.
728x90
'유니티' 카테고리의 다른 글
유니티 - Cinemachine을 이용한 Camera Shake (2) | 2025.04.24 |
---|---|
유니티 - Addressable (0) | 2025.04.19 |
유니티 - CustomEditor 사용법 (0) | 2025.04.18 |
DOTS :: ECS, Job System, Burst Compiler (0) | 2025.02.28 |
FSM, Behavior Tree - Unity (0) | 2024.07.11 |