Unity中文本AssetBundle的解析

Posted five-wood

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity中文本AssetBundle的解析相关的知识,希望对你有一定的参考价值。

?Unity在其安装目录下提供了许多实用的小工具,就存放在unity安装目录下的:Editor/Data/Tools, 其中该路径下的WebExtract.ext和binary2text.exe可以用来解析Text Asset打包出的AssetBundle, 也就是将二进制的ab反序列化成原来的文本格式。

?使用这两个exe应用程序,我们就能了解到每次补丁中打出去的文本AB内部到底是什么,进而排查在游戏更新时出现的一些问题。不过在解析的时候操作步骤比较繁琐,所以笔者抽空写了一个bat脚本,自动化解析(顺便回顾下批处理的语法=.=),具体的bat脚本如下:

@echo OFF
:LOOP
    :: 使用方式:将脚本直接放到C:UserslinAppDataRoamingMicrosoftWindowsSendTo目录下,后续即可通过右键AB,点击“发送到” 选择对应的脚本
    rem 前提是将下方的webExtractPath和binary2testPath变量的unity路径替换成你本地unity安装目录

    set webExtractPath=C:"Program FilesUnity565EditorDataToolsWebExtract.exe"
    set binary2testPath=C:"Program FilesUnity565EditorDataToolsinary2text.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

快捷实用,开袋即食

以上是关于Unity中文本AssetBundle的解析的主要内容,如果未能解决你的问题,请参考以下文章

Unity AssetBundle工作流

Unity 资源管理与AssetBundle详解

Unity 5.3 Assetbundle热更资源

unity创建和加载AssetBundle

unity 怎么生成assetbundle

Unity5 AssetBundle系列——资源加载卸载以及AssetBundleManifest的使用