转载时请在显著的位置注明作者小莫以及本博客地址
必备工具
在正式开始编写Mod插件之前,我们需要准备一些工具:
- Visual Studio(VS)任意版本:https://visualstudio.microsoft.com/zh-hans/vs/
- dnSpy :https://github.com/dnSpy/dnSpy/releases [或其他你觉得用的顺手的反汇编工具]
- Visual Studio Code(VSC):https://code.visualstudio.com/ [或其他你觉得用的顺手的高级文本编辑器]
开启BepInEx Debug模式
用VSC打开“BepInEx\config\BepInEx.cfg”,
修改
[Logging.Console]
Enabled = false
为
[Logging.Console]
Enabled = true
提取需要的库
我们在项目文件夹中新建一个文件夹,取名为"libs",然后从游戏目录中复制一些我们需要用到的dll文件库出来:
“XXXX_Data\Managed”中的
"Assembly-CSharp.dll","UnityEngine.dll"
// 可选复制文件
"UnityEngine.ClothModule.dll","UnityEngine.UI.dll"
“\BepInEx\core”中的
"0Harmony.dll","BepInEx.dll","BepInEx.Harmony.dll"
到此,开发环境搭建好了,下一章我们开始创建项目
可选安装
- BepInEx.ConfigurationManager:[GitHub] [Mod站汉化版]
- BepInEx.Debug tools:https://github.com/BepInEx/BepInEx.Debug/releases
说明:
1.BepInEx.ConfigurationManager:
BepInEx.ConfigurationManager是BepInEx的一个内置管理UI,解压放到“BepInEx/plugins”,
进游戏按F1即可查看当前所有在运作中的插件;
2. BepInEx.Debug:
BepInEx.Debug是BepInEx的一个调试工具库,里面也包含了一些其他的工具:
- ScriptEngine:允许直接重新加载插件而无需重新运行游戏,将你的插件放到“BepInEx/scripts”文件夹中,并在游戏中按F6即可。你可以通过创建“OnDestroy()”方法来处理脚本重载时的需要卸载的资源;
- Startup profiler:记录每个脚本的加载所需时间;
- Mono Profiler:unity游戏的监听器,用来记录所有被调用的方法,调用次数和调用时间;
- Demystify Exceptions:更加人性化的处理报错格式,并正确解析IEnumerables,lambdas 和 async 的状态
3.Visual Studio Code的使用技巧:
我们可以将Visual Studio Code添加到右键菜单中,以更加便捷的编辑我们的文件:
- 新建一个文本文件,重命名为“1.reg”
- 在用文本打开在里面输入:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\VSCode]
@="Open with Code"
"Icon"="vsc路径"
[HKEY_CLASSES_ROOT\*\shell\VSCode\command]
@="\"vsc路径\" \"%1\""
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
@="Open with Code"
"Icon"="vsc路径"
[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@="\"vsc路径\" \"%V\""
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]
@="Open with Code"
"Icon"="vsc路径"
[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command]
@="\"vsc路径\" \"%V\""
- 保存后运行“1.reg”,弹出窗口选择“是”即可;