AssetRipper:免费完整指南,从 .bundle 到可编辑的 Unity 工程
AssetRipper:免费完整指南,从 .bundle 到可编辑的 Unity 工程
【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper
AssetRipper 是一款 Unity 资源提取工具:它解析 .assets、.bundle 等打包文件,把它们导出成可打开、可编辑的 Unity 工程,支持 Windows、macOS、Linux,适合 Mod 作者和资源盘点需求的开发者。
场景:双击 .bundle 却打不开
你从一款游戏里看中一个模型,翻到资源目录,看到的全是 .assets 和 .bundle。双击没有任何反应——这些是 Unity 的二进制打包格式,不懂它的序列化规则就动不了里面的资源。
也有另一种情况:你是项目开发者,怀疑构建包里误打了一堆用不到的依赖,但没法打开验证。AssetRipper 就是为此设计的:读取打包文件,还原资源之间的引用关系,输出一个能直接在 Unity 编辑器里打开的工程。
装完即用的解压目录长这样,里面是可执行程序加一组动态库:
📦 三步跑通首次 .bundle 提取
第1步:下载并解压到下载指南选对应系统的包:Windows 有 x64 和 Arm64,macOS 分 Intel 和 Apple Silicon,Linux 有 x64 和 Arm64。zip 解压到任意目录即可,不需要安装依赖。
第2步:启动程序Windows 直接双击AssetRipper.GUI.Free.exe。macOS 在解压目录打开终端执行:
chmod +x AssetRipper.GUI.Free ./AssetRipper.GUI.Free浏览器会自动打开主界面,各导出格式已经带好默认值,通常不用改:
第3步:拖入文件并导出把 .assets、.bundle 或整个游戏文件夹拖进窗口,等处理结束,选一个导出目录,就得到一个完整 Unity 工程,终端同步显示处理日志:
Linux 上如果提示 Too many open files,在同一终端先执行下面这条再启动:
ulimit -n 1048576能力速览:按场景选着用
不同人用它干的事不一样:
| 场景 | 适合谁 | 怎么用 |
|---|---|---|
| 复用游戏资源 | Mod 作者、学习者 | 提取后把模型、纹理拿进自己项目里改 |
| 资源盘点 | 项目开发者 | 找出被误打进构建的依赖资源 |
| 引用检查 | QA、维护团队 | 定位断掉的引用,避免运行时出错 |
| 代码分析 | 逆向爱好者 | 找出无法内联或裁剪的代码 |
| 资源迁移 | 老项目维护者 | 提取旧版资源导入新版本工程 |
导出结果保留了资源之间的引用关系,而不只是一堆文件,所以能直接在 Unity 编辑器里打开并继续编辑。
关键旋钮:Script Content Level 2 和 Level 3 怎么选
这个配置对应源码里的ScriptContentLevel,共四级:
- Level 0:完全不加载脚本,只导出资源
- Level 1:方法体被存根化,只保留结构
- Level 2(默认):Mono 游戏得到完整方法,IL2CPP 游戏是空方法
- Level 3:IL2CPP 游戏在安全范围内尽量恢复方法体
大多数人保持默认 Level 2 即可,确定是 IL2CPP 且需要方法体时才切 Level 3。
🔧 故障速查
| 现象 | 原因 | 一句话解决 |
|---|---|---|
| Unknown scripting backend,脚本没导出 | dll 和资源分开导入 | dll 文件夹和资源一起拖入 |
| Could not add pe assembly to name dictionary | 文件夹里有同名程序集 | 删掉重复的那个 |
| Too many open files | Linux 文件描述符上限太低 | 同终端执行 ulimit 调高 |
| macOS 提示 Permission denied | 可执行文件没有执行权限 | 用 chmod +x 加权限 |
| 大文件处理卡顿 | 内存不足 | 加虚拟内存,分批处理 |
想让 bundle 里的 Mono 脚本正确导出,把所有 dll 放进一个文件夹,和 bundle 一起拖进窗口。日志出现Files use the 'Mono' scripting backend即为成功。
源码导览:核心逻辑在哪里
项目按职责分层,数据单向流动:
- 文件解析:识别 .bundle、.assets 等打包格式,含压缩文件读取
- 序列化逻辑:还原 Unity 的字段结构
- 资产处理:重建资源间的引用关系
- Unity 工程导出:写出可打开的工程
也就是先由文件层拆包,序列化层读字段,处理层接上引用,导出层落盘。排查问题时可以据此判断卡在哪一层。代码以 GNU GPL v3.0 发布,想参与改进就克隆仓库:
git clone https://gitcode.com/GitHub_Trending/as/AssetRipper今晚挑一个游戏,提取它的资源目录跑通全流程;卡住了查常见问题,脚本导出的限制写得最清楚。
【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考