ログ
CI
Unity

Unityのビルドのパッケージに入ったファイルの一覧を取得する

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"