前言
本章节为没有使用过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控制台

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

Unity游戏Mod/插件制作教程01 - BepInEx的安装和使用相关推荐

  1. Unity游戏Mod/插件制作教程05 - 插件实例2: 简单功能实现

    这一次的教程进行一个小小的功能实现,完整的制作一个插件.以Mirror这个游戏为例,插件的目标是当玩家按下空格时,有一定概率为玩家增加金钱,或者扣除玩家金钱.概率.增加的金钱.扣除的金钱都由配置文件决 ...

  2. Unity游戏Mod/插件制作教程03 - 插件实例1: HelloWorld

    准备工作 作为编程类的教程,果然第一个需要来一个传统项目--HelloWolrd. 在开始之前,我先贴一个链接,这是BepInex官方的开发手册 https://bepinex.github.io/b ...

  3. Unity游戏Mod/插件制作教程02 - 开发环境准备

    前言 虽然本教程的目标读者是有C#基础的玩家,但是作为流程,基础的开发软件部分我还是要记录一下. 安装VisualStudio VisualStudio是我们开发插件最重要的工具,也许你习惯其他开发. ...

  4. Unity游戏Mod/插件制作教程06 - Harmony补丁基础

    前言 通过之前的教程,我们已经知道如何编写基本的插件,如果你有C#和Unity的基础,这个时候已经可以做出一些功能了,比如通过按键修改游戏数据之类的.但是,这有很大的局限性,因为通常情况下,我们并不想 ...

  5. WordPress插件制作教程概述

    接下来的一段时间里,开始为大家讲解WordPress插件制作系列教程,这篇主要是对WordPress插件的一些介绍和说明,还有一些我们需要注意的地方,以及需要掌握的知识. WordPress插件允许你 ...

  6. Unity游戏开发官方入门教程:飞机大战(六)——创建子弹

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  7. Unity游戏开发官方入门教程:飞机大战(二)——创建飞船对象

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  8. Unity游戏开发官方入门教程:飞机大战(五)——实现飞船控制脚本

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  9. Unity游戏开发官方入门教程:飞机大战(十)——敌人的爆炸和移动

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

最新文章

  1. java将本地图片转为bas64_JAVA将图片(本地或者网络资源)转为Base64字符串
  2. Exp9 Web安全基础
  3. java生成dex_Java反编译Dex – jadx
  4. 基于SIMD的AVS整数反变换算法设计与优化
  5. 【SQL】SQL语法树
  6. c# Repeater中CommandArgument传多个参数
  7. 创建log文件的代码
  8. goldendb mysql_golden数据库
  9. 从数据库查询数据并输出到前台页面
  10. Java同步锁synchronized的最全总结
  11. 基于hilbert变换的数字信号_基于Hilbert变换数字调相信号解调算法研究.doc
  12. 编译安装libmodbus库
  13. 奥克兰大学计算机专业好找工作吗,留学选择奥克兰大学的计算机专业肯定不会后悔...
  14. MongoSocketOpenException: Exception opening socket
  15. mvp的全称_MVP是什么的缩写?王者荣耀中的MVP是什么意思?
  16. QT Q_OBJECT使用注意事项
  17. Less简介——CSS
  18. 【创科之龙】零基础学习嵌入式开发以及项目实战开发【第二期视频】
  19. 原生html例子,原生js的innerHTML用法示例
  20. 如何在团队合作中寻找自己的角色

热门文章

  1. excel中如何拷贝已经筛选出来的数据到另外的一表格中
  2. 一种准确预测核糖核酸假尿苷位点的新方法
  3. 计算机毕业设计net综合型体育场馆管理系统(系统+数据库+源码+文档)
  4. 如何将一张灰度图颜色反转
  5. 线性拟合的 R2 和p值怎么计算
  6. Sketch Essential Training: The Basics Sketch基本训练:基础知识 Lynda课程中文字幕
  7. 全民所有制事业单位辞退专业技术人员和管理人员暂行规定
  8. 抖音【实战】内容优化,选题脚本创作
  9. EasyClick脚本开发教程(7)抖音评论区指定概率随机点赞
  10. 提取LOL模型并在3DMax中贴好图导入到U3D中使用