Addressables 0.6.8 不具合まとめ
現状把握している不具合は以下
カタログがキャッシュされない
何が起きる
カタログがキャッシュされず毎回必ずダウンロードされてしまう
原因
キャッシュが PersistentData にセーブされる際のファイル名が間違っている
対処
ContentCatalogProvider.cs の OnCatalogLoaded() 中でファイル名を作成している以下の箇所を修正
code:ContentCatalogProvider.cs
(NG) File.WriteAllText(localCachePath.Replace(".json", ".hash"), m_HashValue);
↓
(OK) File.WriteAllText(localCachePath.Replace(".json.json", ".json.hash"), m_HashValue);
そもそもキャッシュファイルの拡張子が .json.json になるのがおかしい気がするので要調査
RawDataProvider でローカルファイルが無いときの挙動がおかしい
何が起きる
ロケーションにローカルのリソースが指定されているが存在しないとき,通常だとエラーになるがエラーを無視する設定の場合(例えば CanProvideWithFailedDependencies の指定など),結果を無視して欲しいのに正しい結果が返されない
原因
OnComplete 呼び出し実装ミス
対処
RawDataProvider.cs の Start() の69行,エラー処理中の以下の箇所を修正
code:RawDataProvider.cs
(NG) OnComplete();
↓
(OK) DelayedActionManager.AddAction((Action)OnComplete);
Android で GetDownloadSize() が正しい値を返さない
何が起きる
指定した AssetBundle がローカル(StreamingAssets)に存在する場合 0 を返すのが仕様だが常にバンドルサイズを返す
原因
URLがリモートであるかどうかの判別方法が間違っている(Android ではローカルファイルのパスが jar:file:///~ になるのだが考慮されていない)。
対処
AssetBundleProvider.cs の ComputeSize() 中の以下を修正
code:AssetBundleProvider.cs
(NG) if (!loc.InternalId.Contains("://"))
↓
(OK) if (!loc.InternalId.StartsWith("http"))