AssetRipper:免费完整指南,从 .bundle 到可编辑的 Unity 工程

发布时间:2026/10/30 9:26:39
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 filesLinux 文件描述符上限太低同终端执行 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),仅供参考