はじめに
「UnitySamples」リポジトリに含まれている
「AssetReferenceFinder.cs」を使用することで
アセットバンドル化するアセットが
アプリに内包するアセットから参照されていないか確認できます
使用例
例えば、アセットバンドル化するアセットが含まれている「AssetBundle」フォルダと
アプリに内包するアセットが含まれている「NotAssetBundle」フォルダが存在するとして
「NotAssetBundle」フォルダに含まれているマテリアルやプレハブが、
「AssetBundle」フォルダのテクスチャを参照してしまっているとします
「AssetBundle」フォルダを選択した状態で
Unity メニューの「Kayac > AssetReferenceFinder」を選択すると
Unity プロジェクトのフォルダに「AssetReferenceFinder.txt」が生成されます
Assets/NotAssetBundle/Image.mat Assets/AssetBundle/f001.png Assets/NotAssetBundle/Image.prefab Assets/AssetBundle/f001.png
「AssetReferenceFinder.txt」を開いてみると、
「NotAssetBundle」フォルダに含まれているマテリアルやプレハブが、
「AssetBundle」フォルダのテクスチャを参照してしまっていることがわかります
Windows の場合
Windows で使用してみたところ、そのままだと使用できず、4箇所修正が必要でした
69行目
_targetAssetPaths.Add(path.Replace( "\\", "/" ));
111行目
output.Flush();
output.Close(); //追加
123 行目
_targetAssetPaths.Add(childPath.Replace( "\\", "/" ));
132 行目
_targetAssetPaths.Add(childPath.Replace( "\\", "/" ));