Unity3D Cannot load cached AssetBundle. A file of the same name is already loaded from another AssetBundle
Exception: WWW download: Cannot load cached AssetBundle. A file of the same name is already loaded from another AssetBundle.
AssetBundleManager+<Download>c__Iterator0.MoveNext () (at Assets/Script/Kabod/AssetBundleManager.cs:95)
잘 작동중이던 유니티3D 에셋 번들 패치 시스템이 위와 같은 오류를 뿜었습니다. 같은 이름의 에셋번들이 이미 로드 된 상태라서 캐쉬에서 로드 실패했다는거죠. 결론부터 말하면 사람의 실수가 있었습니다.
WWW.LoadFromCacheOrDownload(strAssetBundleUrl, iVersion)
LoadFormCacheOrDownload 내부에서는 스트링 대소문자 구분을 안하는 것 같습니다. 예를들어, 처음에 Archer_Costum01 파일이 패치 된 후 나중에 Archer_costum01.unity3d 파일이 패치가 된다면 LoadFormCacheOrDownload에 요청할 때 둘다 같은 걸로 인식을 해버리는군요.
패치 툴딴에서는 당연히? 다른 처리등이 없기때문에 2개의 파일을 각각 다른 파일로 인식이되어 패치 리스트를 만들었던거죠. 버그라기 보다는 사람의 실수가 맞겠죠? 아무튼 미리 사고를 방지하기 위해 툴 딴에서 파일을 인식 후 패치 목록을 뽑을 때 모두 소문자로 통일한다던지 해주면 될 듯합니다.
AssetBundleManager+<Download>c__Iterator0.MoveNext () (at Assets/Script/Kabod/AssetBundleManager.cs:95)
잘 작동중이던 유니티3D 에셋 번들 패치 시스템이 위와 같은 오류를 뿜었습니다. 같은 이름의 에셋번들이 이미 로드 된 상태라서 캐쉬에서 로드 실패했다는거죠. 결론부터 말하면 사람의 실수가 있었습니다.
WWW.LoadFromCacheOrDownload(strAssetBundleUrl, iVersion)
LoadFormCacheOrDownload 내부에서는 스트링 대소문자 구분을 안하는 것 같습니다. 예를들어, 처음에 Archer_Costum01 파일이 패치 된 후 나중에 Archer_costum01.unity3d 파일이 패치가 된다면 LoadFormCacheOrDownload에 요청할 때 둘다 같은 걸로 인식을 해버리는군요.
패치 툴딴에서는 당연히? 다른 처리등이 없기때문에 2개의 파일을 각각 다른 파일로 인식이되어 패치 리스트를 만들었던거죠. 버그라기 보다는 사람의 실수가 맞겠죠? 아무튼 미리 사고를 방지하기 위해 툴 딴에서 파일을 인식 후 패치 목록을 뽑을 때 모두 소문자로 통일한다던지 해주면 될 듯합니다.
댓글
댓글 쓰기