Unity在其安裝目錄下提供了許多實用的小工具,就存放在unity安裝目錄下的:Editor/Data/Tools, 其中該路徑下的WebExtract.ext和binary2text.exe可以用來解析Text Asset打包出的AssetBundle, 也就是將二進制的ab反序列化成原來的文本格式。
使用這兩個exe應用程序,我們就能了解到每次補丁中打出去的文本AB內部到底是什么,進而排查在游戲更新時出現的一些問題。不過在解析的時候操作步驟比較繁瑣,所以筆者抽空寫了一個bat腳本,自動化解析(順便回顧下批處理的語法=.=),具體的bat腳本如下:
@echo OFF
:LOOP
:: 使用方式:將腳本直接放到C:\Users\lin\AppData\Roaming\Microsoft\Windows\SendTo目錄下,后續即可通過右鍵AB,點擊“發送到” 選擇對應的腳本
rem 前提是將下方的webExtractPath和binary2testPath變量的unity路徑替換成你本地unity安裝目錄
set webExtractPath=C:\"Program Files\Unity565\Editor\Data\Tools\WebExtract.exe"
set binary2testPath=C:\"Program Files\Unity565\Editor\Data\Tools\binary2text.exe"
set filePath=%1
set transitionFolder=%filePath%_data
if not exit %webExtractPath% (
echo 不存在%webExtractPath%
goto END
)
if not exit %binary2testPath% (
echo 不存在%binary2testPath%
goto END
)
if %filePath%! == ! (
goto END
)
call %webExtractPath% %filePath%
echo 生成文本文件
choice /t 1 /d y
for /f "delims=" %%i in ('dir /b/a-d/s %transitionFolder%\*') do (
call %binary2testPath% %%i
)
echo 已生成到同目錄%~nx1%_data下
shift
goto LOOP
:END
echo Done!
pause
快捷實用,開袋即食