以下の内容はhttps://yotiky.hatenablog.com/entry/2021/06/11/addressablesより取得しました。


Unity - Addressables の更新チェックに関するメモ

検証環境

  • Unity 2019.4.25f1
  • Addressables 1.18.4
  • Localization 1.0.0-pre.9

ビルドとキャッシュ

  • アプリをビルドすると、StreamingAssets 配下に catalog.json と settings.json が生成される (f:id:yotiky:20210611001426p:plain:w40)
    • settings.json にはリモートの catalog.hash の取得先(URL)が記載されている
      (f:id:yotiky:20210611001513p:plain:w400)
    • アプリ起動後、Addressables を操作するとリモートから catalog.hash/catalog.json を取得してキャッシュする
    • キャッシュは Application.persistentDataPath/com.unity.addressables 配下

catalog.hash

  • catalog.hash は Addressables のビルド結果に変更があるかどうかのチェックに使われる

crc

  • RemoteBuild / LocalBuild 共通
    • crc は bundle ファイルのチェックサム
    • catalog.json にチェック用のcrcが含まれてる
    • catalog.json はサーバーから取得する
    • catalog.json の m_KeyDataString をデコードすると bundle と アセットが見れる
var str = "m_KeyDataStringの値";
Console.Write(Encoding.UTF8.GetString(Convert.FromBase64String(str)));

f:id:yotiky:20210611002920p:plain:w200 f:id:yotiky:20210611003018p:plain:w200

  • RemoteBuild のアセットの場合

    • ダウンロードする bundle ファイルと crc が一致するかチェックする
  • LocalBuild のアセットの場合

    • StreamingAssets 配下に catalog.json と一緒に bundle ファイルも配置されている
    • crc のチェックはサーバーから取得した catalog.json を使ってそう
    • catalog.json が更新されても StreaminAssets 配下の bundle は更新されてないので、hash が名前に入っているとファイル名が変わって bundle ファイルが見つからずにエラーになる(RemoteProviderException)

      f:id:yotiky:20210611004043p:plain

    • Localization などの hash が名前に入っていない bundle ファイルは、ファイルは見つかるが crc ミスマッチが起きる

      f:id:yotiky:20210611004834p:plain

    • crc ミスマッチが起きた場合、更新するにはアプリをビルドして StreamingAssets 自体の更新が必要

  • マルチプラットフォームでの作業

    • 単一のプラットフォームで作業している場合、アセットに変更(アセットの内容、生成時刻など)がなければ crc は変わらない
    • マルチプラットフォームで作業している場合、スイッチするとアセットに変更が加わる(プラットフォーム切り替え時間の短縮【Unity】 - (:3[kanのメモ帳]
      • アセットをビルドすると catalog.hash/catalog.json に変更が入る
        • ビルド済みのアプリを実行すると catalog.hash/catalog.json のキャッシュが更新されて動作する
      • WindowsからAndroidに替えてアセットビルドして、Windowsに戻ってきてアセットビルドするだけだと元々の catalog.hash/catalog.json から変更はなかった
      • WindowsからAndroidに替えてアプリビルドして、Windowsに戻ってきてアセットビルドすると catalog.hash/catalog.json に変更が入った

参考リンク




以上の内容はhttps://yotiky.hatenablog.com/entry/2021/06/11/addressablesより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14