Unity中文本AssetBundle的解析

▼魔方 西西 提交于 2019-12-06 11:05:56

 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

快捷实用,开袋即食

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!