質問: WWW.LoadFromCacheOrDownload(url, ver, crc)) { while(!www.isDone) { yield return null; } if(www.error != null) { throw new Exception("download error : " + www.error); } www.Dispose(); } ``` 上記のようなコードで、下記のエラーとなります。 ``` The AssetBundle '(アセットバンドルのサーバーの配置場所)' can't be loaded because another AssetBundle with the same files is already loaded. ``` エラーの内容を見る限り、既にロードされているからだめと言われているように読めます。 ですが、LoadFromCacheOrDownloadは既にロードしている場合はキャッシュから目的の物を持ってくるものだと思っていたため、エラーの意味がよく理解できませんでした。 このエラーとなる原因としてはどのようなことが考えられるでしょうか。 また、私の勘違いなどございましたらご指摘いただければと思います。 よろしくお願いいたします。
回答: アセットバンドルは、アプリケーション中にひとつのインスタンスしか持つことができません。 そのため、このエラーが出るということは、同じアセットバンドルデータを2度以上読み込んでいる可能性が考えられます。 > > LoadFromCacheOrDownloadは既にロードしている場合はキャッシュから目的の物を持ってくるもの > > > `LoadFromCacheOrDownload()`の認識は間違っていないと思いますが、キャッシュから持ってきた場合でも、アプリケーション中にひとつのインスタンスしか持てない点は一緒です。 詳しくはUnityマニュアルをご参考ください。 ロードされたアセットバンドルのトラッキング方法