赛尔号 Unity 配置包的简易解析器,用于从 Unity 资源包中提取和解析配置数据。
本项目为赛尔号信息聚合页的衍生子项目
Made with ❤️ by HurryWang(聿聿)
只解析了几个常用的 数据解析就靠各位喽~~ 什么? 不知道怎么解析数据? 那你先去研究怎么dump出c#代码吧 纯体力活...
算是抛砖引玉了,代码质量一般,不过还是希望大家点个star😭
- 🔄 自动更新配置包版本
- 📦 Unity 资源包解析(使用 Python UnityPy)
- 🔧 二进制配置文件解析
- 🚀 高并发下载和处理
https://github.com/median-dxz/assets-manifest-praser
https://github.com/SeerAPI/Albi0
https://github.com/K0lb3/UnityPy
├── bytes2json/ # 二进制转JSON解析器
│ └── buff.ts # buff配置解析器
├── parser/ # 核心解析器
│ ├── updater/ # 更新器模块
│ ├── index.ts # 主入口
│ └── UnityFSParser.py # Unity资源包解析器
├── utils/ # 工具类
│ └── BytesReader.ts # 二进制数据读取器
└── test/ # 测试文件
└── index.ts # 测试示例
npm install
pip install UnityPynpm start这将执行:
- 更新配置包
- 解析 Unity 资源包
- 转换为 JSON 格式
# 1. 更新配置包
npm run update
# 2. 解析Unity资源包
npm run export
# 3. 测试转换
npm run testimport { readFileSync } from "fs";
import { parseBuffConfig } from "./bytes2json/buff";
// 读取二进制配置文件
const fileBuffer = readFileSync("./ConfigPackage/export/buff.bytes");
const data = new Uint8Array(fileBuffer);
// 解析配置
const buffConfig = parseBuffConfig(data);
console.log(buffConfig);参考 bytes2json/buff.ts 的实现模式:
import { BytesReader, LengthType } from "../utils/BytesReader";
interface MyConfig {
// 定义你的配置结构
}
export function parseMyConfig(data: Uint8Array): MyConfig {
const reader = new BytesReader(data, {
lengthType: LengthType.Uint16,
littleEndian: true,
});
// 实现解析逻辑
return {};
}二进制数据读取器,支持多种数据类型:
boolean()- 读取布尔值byte()- 读取字节short()/ushort()- 读取短整型int()/uint()- 读取整型long()/ulong()- 读取长整型float()/double()- 读取浮点数text()- 读取文本(自动处理长度前缀)
支持自动检测和下载最新的配置包:
import Updater from "./parser/updater/Updater";
import Downloader from "./parser/updater/Downloader";
import YooVersionManager from "./parser/updater/YooVersionManager";
const updater = new Updater(
"config-name",
"description",
versionManager,
downloader
);
await updater.update();在 parser/index.ts 中可以配置请求头:
const downloader = new Downloader({
headers: {
"user-agent": "your-user-agent",
referer: "your-referer",
},
});支持本地版本缓存和远程版本比较,自动检测需要更新的文件。
- axios - HTTP 客户端
- cli-progress - 进度条显示
- p-queue - 并发控制
- UnityPy - Unity 资源包解析(Python)
- 在
bytes2json/目录下创建新的解析器文件 - 实现解析函数,参考
buff.ts的模式 - 在
test/index.ts中添加测试用例
BytesReader 支持调试模式,可以追踪读取过程:
const reader = new BytesReader(data, options, "debug-tag");欢迎提交 Issue 和 Pull Request 来完善项目!
ISC License
