拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

5 分钟搞定 Unity 资产提取:把 .assets 和 AssetBundle 变成能打开的工程

5 分钟搞定 Unity 资产提取:把 .assets 和 AssetBundle 变成能打开的工程 5 分钟搞定 Unity 资产提取把 .assets 和 AssetBundle 变成能打开的工程【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper原始工程丢了旧版 Unity 又打不开你只能对着一个二进制的 .assets 文件发呆。AssetRipper 就是干这事的免费开源工具它把游戏里的 .assets 序列化文件和 AssetBundle 资源包解析成可读资产再导出成 Unity 编辑器能直接打开的工程。 先自查你的文件它吃不吃得下吃得下Unity 3.5.0 到 6000.5.X 的序列化文件与资源包覆盖市面上绝大多数已发布游戏Windows、macOS、Linux 三个平台的 x64 与 arm64 发布包Mono 游戏的 C# 程序集反编译回可读源码Lzma、Zstd 等压缩格式的解包吃不下IL2Cpp 游戏不直接提供 C# 源码得先靠 Cpp2IL 这类外部工具生成程序集AssetBundle 本身不存脚本游戏缺了对应的 .dll包内脚本就还原不了GUI 依赖浏览器窗口渲染纯无头服务器必须配合--headless参数 首次运行前的三个确认点按平台和架构x64 或 arm64选对应发布包。包是自包含可执行文件不用装 .NET 运行时。Linux 环境要装 libwebkit2gtk因为界面是靠浏览器窗口渲染的。之后用 Unity 编辑器打开导出工程时编辑器版本别低于目标游戏所用版本。解压后看到 AssetRipper.GUI.Free 主程序和一堆依赖库说明包是完整的。macOS 可以双击主程序也可以终端执行./AssetRipper.GUI.Free首次运行被系统拦截未签名应用时按提示允许一次。第一次提取成功与否看这三个信号启动后浏览器窗口弹出欢迎设置页上面有模型、音频、图片、地形的导出格式选项——这一屏显示出来启动就成功了。接着把游戏的 .assets 文件或资源包直接拖进窗口等日志滚动出处理进度。输出目录里生成带 Assets 文件夹的 Unity 项目交给编辑器打开资产列表完整加载——这才算真正跑通。三个最常见的用法如果你要核对发布包里混进了什么把游戏 Resources 或 Data 目录下的 Level0.assets 这类文件拖进来在资产列表里对照场景逐项核对没被引用的冗余资源会暴露出来瘦身清单就有了依据做完你手里多的是完整的资产清单和引用关系。如果你要抢救丢失的旧工程从序列化文件里提取全部资产并导出成新工程做完你手里多的是保留原始属性的模型、纹理、材质用新版编辑器继续开发或存档都行。如果你要给 Mod 找替换素材把对应的 AssetBundle 拖进来导出通用格式的模型、纹理和原始材质参数做完你手里多的是可以直接替换进游戏的毛坯素材。 数据在工具内部怎么走文件读取层在 Source/AssetRipper.IO.Files/BundleFiles/ 子目录拆开资源包的头部和归档结构、处理各种压缩SerializedFiles/ 子目录解析 .assets 及其类型树这是它能横跨 3.5.0 到 6000.5.X 的底座。解析之后Source/AssetRipper.Import/ 负责重建 Unity 对象之间的引用图。导出环节把结果写成 Unity YAML 工程文件模型、纹理、音频的格式转换则拆在 Export.Modules 下的独立子模块里各管一段。Mono 游戏的 C# 由 Source/AssetRipper.AssemblyDumper/ 独立反编译和资产导出互不干扰。界面本身是本地 Web 应用启动后在本地随机端口监听并自动拉起浏览器窗口。 卡住了怎么办macOS 报 Permission denied下载的可执行文件没有执行权限。在解压目录执行chmod x AssetRipper.GUI.Free再运行。Linux 启动即抛 IOException: Too many open files系统文件描述符上限太低大包里小文件一多就触顶。先在同一终端执行ulimit -n 1048576再启动想一劳永逸就改 /etc/security/limits.conf。.bundle 里提取不出 C# 脚本资源包本身不存脚本脚本在游戏的 Managed 文件夹程序集里。把程序集目录和资源包一起拖进窗口同一次导入日志出现 Files use the Mono scripting backend 字样即成功。日志报 Could not add pe assembly to name dictionary!Managed 文件夹或其子目录里存在两个同名程序集判重看反编译器的程序集名不是文件名。清理重复项即可。导出异常想定位原因启动时加--log参数让日志落盘再用 docs/articles/CommonIssues.md 检索错误文本。无头环境加--headless禁用自动开窗。 一笔账它强在哪、弱在哪强版本范围白纸黑字写死 3.5.0 到 6000.5.X老游戏文件基本吃得住少见于同类工具从解析、对象重建、脚本反编译到工程导出全链路一站完成不用拼凑三四个工具互相传数据GPL v3 开源核心功能免费付费 Premium 只是叠加附加功能不卡基本使用弱官方承认不同 Unity 版本的支持质量略有差异个别新版本特性要等后续更新IL2Cpp 游戏得先靠外部 Cpp2IL 生成程序集游戏缺 .dll 时脚本就是还原不了GUI 依赖浏览器窗口纯无头服务器环境必须配合--headless参数使用后续动作源码用git clone https://gitcode.com/GitHub_Trending/as/AssetRipper获取。发布分三档稳定版、预发布版、每次提交自动触发的 nightly 构建。社区在 Discord界面已翻译 23 种语言bug 和功能请求都走 Issue 渠道。从对着二进制 .assets 发呆到编辑器里打开完整工程——AssetRipper 把中间所有脏活包圆了这就是提取 Unity 资产从折腾变成 5 分钟操作的全部意义。【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表