Unityのパッケージに入ったファイルのリストを取得する
皆さんUnityのログファイル見たことありますか?
ここにあります
Unityのログファイルのページ
実はこのファイル結構いろんな情報が入っていて見てると面白い…
っていうかちょくちょく必要になったりするんですけど…
その説明は置いといて、
ビルドした時のアプリサイズとかって気にするときあるじゃないですか。
そういう時に一つの調査手段としてUnityのログにはどのファイルをパッケージにしたかが書き出されます。
これをちゃんと読むと例えばAssetBundleに逃がすはずのファイルがどこかのシーンに紐づいてビルドされちゃったとか
なんかめっちゃでかいファイルはいってんだけど?とか
まぁそんな感じでわかります。
でそのパッケージになったファイルの一覧取得スクリプトの一例はこんなワンライナーで書けます。
ログによって変なところが入ってしまうかもしれませんが基本は大体これでとれると思います。
sh
awk "/(kb|mb).*%/ { print }" ログファイル
# どうでもいいけどgrepでできそう
powershell
Select-String -Path .\editor.log -Pattern "(kb|mb).*%"
こんな感じで出てきます。
Textures 341.5 kb 0.9%
Meshes 0.0 kb 0.0%
Animations 0.0 kb 0.0%
Sounds 0.0 kb 0.0%
Shaders 117.7 kb 0.3%
Other Assets 1.9 kb 0.0%
Levels 6.9 kb 0.0%
Scripts 597.1 kb 1.6%
Included DLLs 3.9 mb 10.9%
File headers 9.0 kb 0.0%
Complete size 36.2 mb 100.0%
341.5 kb 0.9% Assets/1.jpg
118.2 kb 0.3% Resources/unity_builtin_extra
(略)
あとは、これをファイルに書き出した推移見守ったりすると便利かも?
ほかにも…
ほかにも正規表現変えてあげると色々な情報が取れます。(どちらもpowershell)
hashが再計算されたファイル
Select-String -Path .\editor.log -Pattern "\sreplaces\s.*\sat\spath"
アップデートがかかったファイル
Select-String -Path .\editor.log -Pattern "^Updating\s"