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
快捷实用,开袋即食