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개의 파일을 각각 다른 파일로 인식이되어 패치 리스트를 만들었던거죠. 버그라기 보다는 사람의 실수가 맞겠죠? 아무튼 미리 사고를 방지하기 위해 툴 딴에서 파일을 인식 후 패치 목록을 뽑을 때 모두 소문자로 통일한다던지 해주면 될 듯합니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.