コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Addressables で Android において StreamingAssets から読み込んだアセットバンドルがキャッシュに保存されない現象に関するメモ

検証環境

  • Addressables 1.16.19

概要

  • Addressable を使用しているプロジェクトで Android ビルドして
    StreamingAssets からアセットバンドルを読み込んだ時に
    そのアセットバンドルがキャッシュに保存されない現象に遭遇した
  • Addressable の AssetBundleProvider を使用してアセットバンドルを読み込む場合
    Android において StreamingAssets からアセットバンドルを読み込むのは
    UnityWebRequestAssetBundle.GetAssetBundle ではなく
    AssetBundle.LoadFromFileAsync が使用されるのでキャッシュには保存されない

AssetbundleProvider.cs

223 行目以降

if (File.Exists(path) || (Application.platform == RuntimePlatform.Android && path.StartsWith("jar:")))
{
    m_RequestOperation = AssetBundle.LoadFromFileAsync(path, m_Options == null ? 0 : m_Options.Crc);
    m_RequestOperation.completed += LocalRequestOperationCompleted;
}