2016-09-03 1 views
0

아래 코드를 사용하고 있는데 번들이 처음 설치되는 경우에만 작동합니다. 그렇지 않으면 번들이 이미 존재합니다. 오류가 발생합니다. 그래서 제 질문은 내가 번들이 존재하는지 확인하고 만약 그렇다면,LoadFromCacheOrDownload 파일이있는 경우 캐시에서로드하는 방법

IEnumerator DownloadAndCache() { 
    while(!Caching.ready) 
     yield return null; 

    using (WWW www = WWW .LoadFromCacheOrDownload(bundleURL, Version)) { 
     yield return www; 
     if (www .error != null) 
     throw new UnityException("WWW Download had an error: " + www .error); 
     // Must add check mechanism here 

     AssetBundle bundle = www .assetBundle; 
    // bundle.Unload(false); this doesnt work 
     if (AssetName == "") { 
      mBundleInstance = Instantiate (bundle.mainAsset) as GameObject; 
      mBundleInstance.transform.parent = cloudtarget.transform; 
     } 
     else { 
      mBundleInstance = Instantiate(bundle.LoadAsset (AssetName)) as GameObject; 
      mBundleInstance.transform.parent = cloudtarget.transform; 
     } 
    } 
} 

이름의 경우, 이름의 액세스가 생각하는 당신

+0

번들 .Unload (거짓); 다른 오류를 해결 한 후에도 모든 것을 redownloading하고 있습니다. 어떻게이 redownloading 문제를 해결하고 설치된 번들을 캐시에서로드 할 수 있습니까? – firativerson

답변

0

모든 캐시 된 자산 번들을 감사 캐시 파일을 읽을 수있는 방법입니다 자산 번들은 사용 ABC입니다 :

Caching.IsVersionCached(AssetBundleName, version) // AssetBundleName = "abc" 

예를 들어 중요한 어떤 이름을 한 가지 더 기억 당신이 http://somewibsite.com/AssetBundle/abc에서 당신에게 자산 번들을 다운로드하는 경우 모든 도메인 부분은 무시되고 이름 만 abc 방송이 저장됩니다 자산 번들 이름

관련 문제