検証環境
- Unity 2019.4.24f1
- Addressables 1.18.9
- Localization 1.0.0-pre.9
検証
LocalLoad を使用した時、CRCチェックと[Bundle Naming Mode]の設定を変更した場合の動作を検証する。
- 事前条件の状態でアセットをビルド後、アプリをビルドする
- アセット自体もしくはそれに加えてCRC/名付けの設定を変更後、アセットをビルドしなおす(アプリはビルドしない)
- アプリを起動する
パラメータの解説
UseAssetBundleCache
trueの場合、アセットバンドルのハッシュ値を使用して、バンドルをダウンロードする代わりにローカルキャッシュからロードできるかどうかを判断します。 (リモートアセットバンドルにのみ適用されます)
UseAssetBundleCrc
trueの場合、アセットバンドルのCRC(Cyclic Redundancy Check)を使用して整合性をチェックします。これは、ローカルバンドルとリモートバンドルの両方に使用できます。
UseAssetBundleCrcForCachedBundles
キャッシュ済みアセットバンドルのCRC(Cyclic Redundancy Check)を使用して整合性をチェックします。
(引用元)
LocalLoad
- 設定
- [Use Asset Bundle CRC] ON
- [Use CRC for Cached Asset Bundles] ON
- Append Hash to Filename
- アセット自体を更新
- (変更後)
- 結果:
Unable to open archive file: C:/git/LocalizationSample/Build/LocalizationSample_Data/StreamingAssets/aa/StandaloneWindows64/local_assets_all_b9eb56df2be90d60b93085cc5cde771e.bundle
- 設定
- [Use Asset Bundle CRC] ON
- [Use CRC for Cached Asset Bundles] ON
- Append Hash to Filename -> Filename に変更
- アセット自体を更新
- (変更後)
- 結果:
Unable to open archive file: C:/git/LocalizationSample/Build/LocalizationSample_Data/StreamingAssets/aa/StandaloneWindows64/local_assets_all.bundle
- 設定
- [Use Asset Bundle CRC] ON
- [Use CRC for Cached Asset Bundles] ON
- Filename
- アセット自体を更新
- (変更後)
- 結果:
CRC Mismatch. Provided 88e88e91, calculated 4c0a74c1 from data. Will not load AssetBundle 'StandaloneWindows64\local_assets_all.bundle'
- 設定
- [Use Asset Bundle CRC] ON
- [Use CRC for Cached Asset Bundles] ON -> OFF に変更
- Append Hash to Filename
- アセット自体を更新
- (変更後)
- 結果:
Unable to open archive file: C:/git/LocalizationSample/Build/LocalizationSample_Data/StreamingAssets/aa/StandaloneWindows64/local_assets_all_b9eb56df2be90d60b93085cc5cde771e.bundle
- 設定
- [Use Asset Bundle CRC] ON -> OFF に変更
- [Use CRC for Cached Asset Bundles] ON -> OFF に変更
- Append Hash to Filename
- アセット自体を更新
- (変更後)
- 結果:
Unable to open archive file: C:/git/LocalizationSample/Build/LocalizationSample_Data/StreamingAssets/aa/StandaloneWindows64/local_assets_all_609c480970c4dbec2de6800cb853ee0d.bundle
- 設定
- [Use Asset Bundle CRC] ON -> OFF に変更
- [Use CRC for Cached Asset Bundles] ON -> OFF に変更
- Append Hash to Filename -> Filename に変更
- アセット自体を更新
- (変更後)
- 結果:
Unable to open archive file: C:/git/LocalizationSample/Build/LocalizationSample_Data/StreamingAssets/aa/StandaloneWindows64/local_assets_all.bundle
- 設定
- [Use Asset Bundle CRC] OFF
- [Use CRC for Cached Asset Bundles] OFF
- Append Hash to Filename -> Filename に変更
- アセット自体を更新
- (変更後)
- 結果:
Unable to open archive file: C:/git/LocalizationSample/Build/LocalizationSample_Data/StreamingAssets/aa/StandaloneWindows64/local_assets_all.bundle
- 設定
- [Use Asset Bundle CRC] ON -> OFF に変更
- [Use CRC for Cached Asset Bundles] ON -> OFF に変更
- Filename
- アセット自体を更新
- (変更後)
- 結果:No Error
まとめ
- LocalLoadのアセットであっても、Addressablesはサーバーに配置された最新のカタログをもとにチェックが行われる
- LocalLoadの場合AssetBundleがアプリビルド時にバンドルされるため、ハッシュが名前に含まれているとAssetBundleが更新された時にハッシュが一致せずに
Unable to open archive file
のエラーが出る
- 名前にハッシュを含まない場合、CRCチェックを行うとAssetBundleは読み込めるが最新のカタログとCRCが一致しないと
CRC Mismatch
のエラーが出る
- この場合、CRCチェックをしないようにするとアプリビルド時のAssetBundleを使って動作するようになる