丢一个 .assets 文件进去,拿回一整个 Unity 项目:AssetRipper 资产提取实操走查
2026/8/25 8:23:13 网站建设 项目流程

丢一个 .assets 文件进去,拿回一整个 Unity 项目:AssetRipper 资产提取实操走查

【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper

AssetRipper 是一款免费开源的 Unity 资产提取工具:把打包出来的.assets.bundle资源包甚至整个游戏数据目录丢给它,它会把里面的模型、贴图、音频、动画和 C# 脚本解析出来,重新整理成一个可以直接用 Unity 打开的项目。它覆盖 Unity 3.5.0 到 6000.5.X 的版本范围,基本市面上所有版本的游戏文件都能处理,Windows、macOS、Linux 三个平台都能跑。

从一个真实任务说起

假设你手上有某款老游戏的Level1.assets文件,想看看里面的主角模型和贴图长什么样,最好还能把里面的脚本捞出来学习一下。这件事用 AssetRipper 走下来就是三步:装好工具、拖入文件、按用途选个格式导出。

先把工具跑起来

AssetRipper 基于 .NET 9 构建,安装方式很直接:

  • Windows:下载对应架构的 zip 包,解压即用
  • macOS:选择 Intel 或 Apple Silicon 版本运行;首次启动若被系统拦截,右键选择"打开"即可
  • Linux:确认装有 libwebkit2gtk 依赖后运行

解压完成后的目录大致长这样:一个主程序加上一堆运行时库文件,没有需要额外安装的依赖:

macOS 用户如果遇到细节问题,可以参考项目里的 docs/articles/RunningOnMac.md。如果你想从源码开始,仓库地址是:

git clone https://gitcode.com/GitHub_Trending/as/AssetRipper

拖入文件,等它解析

启动后是一个欢迎界面,把文件拖进窗口就会开始分析。它不需要你提前告诉它文件是什么版本——格式检测和版本识别都是自动完成的,文件越大耗时越长,一般几秒到几分钟。解析完成后你会得到一份完整的导出结果:资产按原游戏的结构组织,损坏的引用会被标出来,方便你发现坏链。

导出格式怎么选

第一次使用时你会看到一屏配置选项,每一项都有说明文字。默认值对大多数场景已经够用,先记住下面这张表就够了:

选项默认值作用
Mesh Export FormatNative网格用 Unity 编辑器原生格式导出,后续可再转其他格式
Image Export FormatPng所有贴图输出为 PNG
Audio Export FormatDefault音频按包内原始类型导出,多数是 WAV,部分是 OGG
Sprite Export FormatUnitySprite 用 Unity 专用格式,编辑器外看不了
Terrain Export FormatUnity地形用原生格式,方便再次导入 Unity
TextAsset Export FormatParse文本资产导出为纯文本,并尝试猜出正确扩展名(如 .json)
Script Content LevelLevel 2Mono 游戏导出完整方法体,IL2CPP 游戏导出占位方法
C# Language VersionAutomatic - Safe反编译脚本时使用的 C# 版本

按用途微调

只有在两种情况下需要动手改设置:

  • 模型想直接喂给外部工具(如 Blender):把 Mesh 格式从 Native 换成通用格式
  • 贴图要离开 Unity 使用:保持 PNG 即可;如果只想在 Unity 内继续用,可以换更紧凑的格式

其余选项保持默认,导出质量不会打折扣。

为什么它能读懂这么多版本

Unity 每个大版本的序列化格式都有调整,AssetRipper 能横跨 3.5 到 6000.5.X 这么长的文件范围,靠的不是逐个版本打补丁,而是把解析做成了一条分层的流水线。大致分工是这样的:

  • 读文件:Source/AssetRipper.IO.Files/ 负责各种容器格式,包括 AssetBundle、序列化文件,以及 gzip、LZMA、zstd 等压缩流的识别和解包
  • 理解资产:Source/AssetRipper.Assets/ 按 Unity 的类型树还原对象,并重建资产之间的引用关系,所以导出时不会漏掉被依赖的资源
  • 转成你能用的东西:Source/AssetRipper.Export.Modules.Models/ 管网格,Source/AssetRipper.Export.Modules.Textures/ 管贴图,Source/AssetRipper.Export.Modules.Audio/ 管音频,各模块独立,新格式可以单独扩展
  • 捞脚本:Source/AssetRipper.AssemblyDumper/ 负责把托管代码反编译回可读的 C#,界面本身则由 Source/AssetRipper.GUI.Web/ 以网页形式实现

所以对你来说"支持哪个版本"几乎不是问题——只要那个版本的游戏还在跑,它的文件大概率就能被打开。

哪些人用它最多

  • 游戏开发者自查:找出哪些依赖资产被意外打进了包、哪些引用已经损坏、哪些代码没被 IL2CPP 裁剪掉
  • 老项目抢救:旧版 Unity 装不上或装坏了,直接从生成文件里把资产完整搬进新版工程
  • Mod 制作者:提取原始资源作为修改基底,分析游戏内部的数据结构,再做替换回游戏里验证

共同点是一个:你手里有 Unity 生成的二进制文件,但拿不到当初的工程。

下一步

下载对应平台的版本,挑一个你熟悉的 Unity 小项目生成的文件试一次,比读十篇教程都有用;卡住了再回头对照上面的导出格式表调整设置。

【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询