Skip to content

从这里开始

欢迎来到 ADOFAI Mod 开发教程。这个系列将引导你循序渐进地开发一个 A Dance of Fire and Ice(ADOFAI)的 Mod。

整个系列共 26 章,分为五个阶段:

阶段章节你能得到什么
☕ 前置0C# 基础速成(零基础补课)
🚀 入门1~5环境、UMM 原理、第一个 Mod、调试
🧩 Harmony6~16补丁全系列(含 Transpiler、Reverse Patch)
🛠️ 实战17~19设置界面、定位目标方法
🚢 进阶发布20~25多加载器、Mod API、CI/CD、规范

在开始之前,希望你能具备以下基础知识:

  1. 没学过 C#? 先读《C# 基础速成》,把第 0 章过一遍
  2. 有一定的 Git、GitHub 使用经验

环境准备

1. 准备游戏

  • 从 Steam 购买并安装 A Dance of Fire and Ice
  • 确保游戏可以正常启动

2. 安装 UnityModManager

  1. 下载 UnityModManager(0.27.0 或更高版本)
  2. 运行 UMM,在游戏列表中选择 ADOFAI
  3. 点击 Install 将 UMM 注入游戏

3. 安装开发工具

  • Visual Studio 2019+JetBrains Rider
  • .NET Framework 4.8.1 Developer Pack
  • Harmony 2.3.3

4. 获取官方模板

组织提供了两个 Mod 模板,本系列将使用第一个:

模板说明
ADOFAIModTemplate基础模板,本系列的主角
ADOFAIMod.MultiLoader多加载器进阶模板,见进阶章节

克隆并安装基础模板:

bash
git clone https://github.com/adofaiex/ADOFAIModTemplate.git
cd ADOFAIModTemplate

# 安装为本地模板(从仓库目录)
dotnet new install path\to\ADOFAIModTemplate
# 或从 NuGet 包安装
dotnet new install path\to\StArray.ADOFAIModTemplate.1.0.0.nupkg

5. 验证环境

用模板创建项目测试:

bash
dotnet new ADOFAIModTemplate --name MyFirstMod

如果生成了包含 src/Main.cssrc/Settings.cssrc/Patches.cs 的项目结构,说明环境就绪。

调试你的 Mod

  • UMM 采用运行时注入机制,调试时需要启动游戏本体
  • 在 UMM 界面(默认 Ctrl+F10)中启用 / 禁用 Mod
  • 观察游戏日志确认加载是否成功

开发原则

感谢你为 ADOFAI 生态做出贡献,开发 Mod 请遵守以下原则:

  • 功能需经过测试
  • 需包含良好的注释
  • 持久化数据请存放于 Mod 的本地配置目录,防止更新时被覆盖
  • 良好的错误处理机制,不要让 Mod 因一个错误而崩溃
  • 如果是扩展现有 Mod 的功能,优先向原项目提交 PR

章节

完整章节列表如下,建议按顺序阅读:

#章节内容
0C# 基础速成零基础补课(可选)
1从这里开始环境准备、章节地图
2什么是 ModMod 能做什么、开发红线
3认识 UMMUMM 原理、Mod 目录、ModEntry
4最小实例Info.json + Main.cs,第一个 Mod
5编译、部署与调试编译、热重载、看日志
6Harmony 入门四种补丁类型总览
7Prefix 补丁拦截方法、修改参数
8Postfix 补丁修改返回值、__state
9Finalizer 补丁异常处理
10魔法参数详解__instance / __result / __state
11HarmonyPatch 详解目标写法、优先级
12补丁生命周期PatchAll / 优先级
13Transpiler 入门IL 是什么
14Transpiler 实战CodeMatcher
15手动补丁动态打补丁
16Reverse Patch反向调用游戏方法
17设置系统定义并持久化设置
18绘制设置界面IMGUI 界面
19定位目标方法dnSpy / ILSpy
20进阶:多加载器模板UMM / Melon / BepInEx / Doorstop
21进阶:Mod APISarcary 公共 API
22打包与发布Release 与发布
23GitHub Actions 自动构建CI/CD、私有 lib 仓库
24模组开发规范红线与质量要求
25常见问题与排查FAQ

An organization that researches and expands the functions of ADOFAI