disunity是一款Java編寫(需安裝jdk1.8,即Java8)的解析Unity asset和asset bundle文件(流式加載,支持熱更新)的命令行工具(已開源)
disunity0.3.4支持untiy5及以下版本,除了解析分析文件之外,還能使用extract參數提取某些類型資源(模型、紋理)
最新disunity0.5重新梳理了命令行參數,並進行了重構,比較可惜地是,這個版本去掉了資源提取功能
java.exe -jar "disunity.jar" bundle-extract "F:\\Resources\unity_builtin_extra"
Disunity Gui Helper是一款封裝disunity的gui工具(已開源),最新的0.21版本可與disunity0.3.4版本配合進行工作
DisunityGui.exe下載后,要放在disunity.jar所在目錄中
UnityAssetsExplorer可提取Unity asset和asset bundle文件中的某些類型資源(如:shader、tex等)
並且還支持將資源修改后,寫回Unity asset和asset bundle文件
該工具對tex紋理提供了自動轉換dds的功能
最新版本為v1.5,支持untiy5及以下版本
AssetsBundleExtractor是一款分析Unity asset和asset bundle文件的工具(已開源)
並且還支持將資源修改后,寫回Unity asset和asset bundle文件
最新版本為2.2 stable d,支持untiy2019.2.0f1及以下版本
UABE開發日志記錄:https://github.com/DerPopo/UABE
版本下載:Unity Assets Bundle Extractor github
Unity3d Obfuscator可以提取 unity web player.unity3d ,webplayer平台的的資源
該工具作者還開發了一些更強大的破解工具(收費),詳見:DevXDevelopment
AssetStudio,又叫UnityStudio,是一款C#編寫的十分強大的提取Unity asset和asset bundle文件中資源的工具(已開源)
支持Unity2.5~2019.1版本,支持的資源類型包括:Texture2D、Sprite、AudioClip、Font、Mesh、TextAsset、Shader、MovieTexture、VideoClip、MonoBehaviour、Animator
該項目一直保持着活躍,github地址為:https://github.com/Perfare/AssetStudio
AssetStudio導出貼圖格式為dds,需要轉成其他格式,可使用DDS Converter
ProjectExodus github開源的Untiy轉UE4工具
https://github.com/NegInfinity/ProjectExodus
最后,一些圖形相關資源可以用Tegra Graphics Debugger、高通Adreno、RenderDoc等抓幀調試工具來獲取
從Unity asset文件中查看當前使用Unity版本
當前游戲使用是Unity2018.3.11f1版本制作的
從asset bundle文件中查看當前使用Unity版本
當前游戲使用是Unity2018.4.13f1版本制作的
asset bundle包會有一個manifest文本文件與之對應,如:suitcase_plastic_lootable.bundle.manifest
Unity PC端游XXX_Data目錄結構
Managed目錄:存放unity引擎、第三方和游戲邏輯托管dll 如:Assembly-CSharp.dll、Assembly-CSharp-firstpass.dll
Mono目錄:Mono虛擬機相關的文件
Plugins目錄:第三方Native dll庫
Resources\unity default resources:unity引擎自帶缺省資源
Resources\unity_builtin_extra:內置shader(如:Standard.shader)、缺省material等 里面99%是shader文件
StreamingAssets\Windows目錄:項目工程中的StreamingAssets文件夾的內容不會壓縮原封不動的拷貝到該目錄下
globalgamemanagers:所有gameobject、shader、monobehaviour腳本、mesh、material、transform、audio,texture、spirite等的總覽以及setting信息
globalgamemanagers.assets:playersetting中用到的資源
resources.assets:項目工程中的Resources文件夾的內容會打包到該文件中,但如果有資源被某場景使用,該資源則會存儲於該場景對應的sharedassets<0~n>.assets中
level0、level1、level2、level44、level165:地圖關卡文件,有幾張地圖就對應幾個level文件
sharedassets0.assets、sharedassets1.assets、sharedassets2.assets、sharedassets44.assets、sharedassets165.assets:各關卡引用的texture,material,shader,material,animator,monobehaviour腳本等外部資源
參考
[反編譯U3D]Decompile Unity Resources
Unity3D研究院之提取游戲資源的三個工具支持Unity5(八十四)