外观
框架简介
Studio Mod Framework 是为 BrickLink Studio 2.0 打造的第三方 Mod 加载框架。它让你可以在不修改官方源码的前提下,向 Studio 注入自己的功能——菜单项、窗口、事件监听,乃至改写原生方法的执行逻辑。
整个框架由三个组件构成,职责边界清晰:
| 组件 | 产物 | 职责 |
|---|---|---|
| StudioSDK | StudioSDK.dll | 插件基类、StudioAPI 门面、配置与日志系统。插件开发者唯一需要引用的程序集。 |
| StudioModLoader | StudioModLoader.dll | 启动引导、Mods 目录扫描、依赖解析、菜单注入、F10 运行时控制台。 |
| StudioInstaller | StudioInstaller.exe | 把 Loader 与依赖装进 Studio 2.0,备份原文件,支持一键卸载。 |
运行原理
Studio 2.0 基于 Unity 2022.3(MonoBleedingEdge x64)运行,本身没有开放插件接口。框架的做法是:
- Installer 用 Cecil 改写
Studio.Startup.dll——在InitializationSequenceService.Initialize()的第一条指令前插入一句Bootstrapper.Initialize()调用。 - Studio 启动时,这句调用先执行,Loader 接管引导流程:注册程序集解析、扫描
Mods/目录、实例化插件。 - 每个插件继承自
StudioPlugin(底层是 UnityMonoBehaviour),因此可以直接使用 Unity 的协程、生命周期与输入检测。
text
+------------------------------------------------------------------+
| BrickLink Studio 2.0 |
| Unity 2022.3.62f3 / MonoBleedingEdge x64 / .NET Standard 2.1 |
+------------------------------------------------------------------+
▲
│ Cecil IL 注入入口
+-----------------------------┴------------------------------------+
| StudioModLoader.dll |
| Bootstrapper · LoaderManager · MenuInjector |
+------------------------------------------------------------------+
▲
│ 依赖并引用
+-----------------------------┴------------------------------------+
| StudioSDK.dll |
| StudioPlugin · StudioAPI · PluginConfig · IPluginLogger |
+------------------------------------------------------------------+
▲
│ 继承并扩展
+-----------------------------┴------------------------------------+
| 你的插件.dll → 放入 Studio 2.0/Mods/ 即可被自动加载 |
+------------------------------------------------------------------+能力一览
- 无侵入加载:不改官方源码,不破坏数字签名之外的其他文件;卸载时按备份还原。
- 原生菜单集成:在顶部工具栏
Help右侧注入Mods下拉菜单,沿用 Studio 原生 NGUI 预制体样式。 - 类型安全的配置:
Config.Bind<T>自动生成带注释的 INI 文件,支持变更事件。 - 分级日志:每个插件自带
Logger,输出自动加插件名前缀,同时写入磁盘与控制台。 - Harmony 补丁:内置 HarmonyX 2.x,插件程序集内声明补丁类即自动
PatchAll。 - 运行时调试:游戏内按
F10呼出控制台,查看已加载插件、补丁数量与实时日志。
系统要求
| 项 | 要求 |
|---|---|
| Studio 版本 | BrickLink Studio 2.0(Unity 2022.3.62f3) |
| 操作系统 | Windows x64 |
| 插件目标框架 | .NET Framework 4.7.2 或 .NET Standard 2.0(编译为 x64 类库) |
| C# 版本 | C# 7.3 及以上 |
| 开发环境 | Visual Studio 2022 / Rider / VS Code |