Unity游戏Mod/插件制作教程01 – BepInEx的安装和使用

前言
本章节为没有使用过BepInEx的同学进行BepInEx的安装和使用方面的介绍,如果你之前已经使用过并了解如何使用,可以直接跳过本章节。

BepInEx下载
BepInEx的Github链接 https://github.com/BepInEx/BepInEx/releases

一共有3种版本,BepInEx_unix_5.x.x.x为unix类操作系统使用的版本,教程以windwos版本为主(我没有其他系统的电脑),所以就不用下载这个版本了。BepInEx_x64_5.x.x.x和BepInEx_x86_5.x.x.x分别对应64位Unity和32位Unity,对于想要制作插件的游戏,打开游戏根目录,可以找到UnityCrashHandler64或者UnityCrashHandler32这两个文件的其中一个,根据末尾的数字选择对应版本的BepInEx下载。

BepInEx安装
前文提到过BepInEx的安装非常简单,只需要将BepInEx解压到游戏根目录即可。

解压后的文件结构应如下所示(带星号的为BepInEx的部分):

|-XXXGame
  |-BepInEx*
    |-core
      |-...
  |-XXXGame_Data
  |-doorstop_config.ini*
  |-UnityCrashHandler64.exe
  |-UnityPlayer.dll
  |-XXXGame.exe
  |-winhttp.dll*
如果安装无误,启动游戏之后,在BepInEx文件夹下应该会生成几个文件夹,如下:

|-BepInEx
  |-cache //缓存文件夹
  |-config //插件配置文件夹
  |-core //框架核心文件夹
  |-patchers //特殊插件文件夹
  |-plugins //常规插件文件夹
  |-LogPutput.log //BepInEx日志
如果没有生成这几个文件夹,请重新确认游戏使用的Unity版本、游戏路径是否有中文、安装位置是否正确。

你可能会疑惑,为什么我们没有运行任何程序,也没有什么注入dll的操作,BepInEx就加载成功了?

这其实是因为,应用程序总是会用系统目录的一些库文件,而程序加载的时候,是先从自己的文件夹内搜索库文件,如果找不到,再去系统目录查找。利用这个原理,UnityDoorStop将加载插件的逻辑嵌入到winhttp.dll这个库中,同时不动它原来的其他逻辑。这样,就在保证了原功能不变并且不需要破坏游戏程序的情况下,加载了我们的插件。

插件的安装
本教程以常规插件的制作教程为主,所有的常规插件最后都是一个dll文件的形式,放入BepInEx/plugins文件夹下即可,它会自动读取这个文件夹下面的插件并加载。

打开控制台
在普通玩家的使用过程中,大部分情况并不需要看到控制台,玩家不需要了解插件背后做了什么,但是对于作者来说,控制台的作用非常大,在这里可以看到游戏本身输出的日志,插件也可以输出日志,方便我们对错误进行排查。

BepInEx启动一次之后,会在BepInEx/config文件夹下生成一个叫BepInEx.cfg的文件,这个就是BepInEx的配置文件了。打开配置文件(推荐使用VSCode、Notepad++等高级文本编辑器),在[Logging.Console]条目下,我们将Enabled = false改为Enabled =  true,这样就开启了控制台的显示,打开游戏,即可看到控制台。

BepInEx控制台

有什么问题或者建议可以在评论区评论或者与我私信交流。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>