コガネブログ

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

【Unity】アセットバンドルの中身の差分を比較できる「UnityAssetBundleDiffKun」紹介

はじめに

「UnityAssetBundleDiffKun」を Unity プロジェクトに導入することで
アセットバンドルの中身の差分を比較できるようになります

使用例

f:id:baba_s:20211031194449g:plain

クイックスタート

f:id:baba_s:20211031194905p:plain

Unity メニューの「Window > UTJ > UnityAssetBundleDiffKun」を選択して

f:id:baba_s:20211031194907p:plain

表示されたウィンドウに差分を比較したいアセットバンドルを設定して
「WebExtract」を押します

f:id:baba_s:20211031194911p:plain

次に差分を比較したい中身をプルダウンメニューから選択して
「Bin2Text」を押します

f:id:baba_s:20211031194913p:plain

すると、その中身がテキスト形式で表示されます

f:id:baba_s:20211031194915p:plain

同様に差分を比較したいアセットバンドルをもう一つ設定します

f:id:baba_s:20211031194918p:plain

そして「Verify」を押すと

f:id:baba_s:20211031194921p:plain

中身が一致するかどうかを確認できます

補足

「WebExtract」を押した時に DirectoryNotFoundException が表示される場合は
「UnityAssetBundleDiffKun.cs」の 215 行目を以下のように書き換えます

var result = exec.Exec($@"""{path}""");

「Verify」を押した時に NullReferenceException が表示される場合は
「UnityAssetBundleDiffKun.cs」の 305 行目辺りに以下の行を追加します

mDiffView.textFile1Path = mABTextView[0].textFilePath;
mDiffView.textFile2Path = mABTextView[1].textFilePath;
mDiffView.callback = Verify; // ★
mDiffView.OnGUI();

「Verify」を押した時に System.ComponentModel.Win32Exception が表示される場合は
「DiffExec.cs」の 18 行目を以下のように書き換えます

public DiffExec() : base("diff.exe") { }

関連記事