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控制台
有什么问题或者建议可以在评论区评论或者与我私信交流。
Unity游戏Mod/插件制作教程01 - BepInEx的安装和使用相关推荐
- Unity游戏Mod/插件制作教程05 - 插件实例2: 简单功能实现
这一次的教程进行一个小小的功能实现,完整的制作一个插件.以Mirror这个游戏为例,插件的目标是当玩家按下空格时,有一定概率为玩家增加金钱,或者扣除玩家金钱.概率.增加的金钱.扣除的金钱都由配置文件决 ...
- Unity游戏Mod/插件制作教程03 - 插件实例1: HelloWorld
准备工作 作为编程类的教程,果然第一个需要来一个传统项目--HelloWolrd. 在开始之前,我先贴一个链接,这是BepInex官方的开发手册 https://bepinex.github.io/b ...
- Unity游戏Mod/插件制作教程02 - 开发环境准备
前言 虽然本教程的目标读者是有C#基础的玩家,但是作为流程,基础的开发软件部分我还是要记录一下. 安装VisualStudio VisualStudio是我们开发插件最重要的工具,也许你习惯其他开发. ...
- Unity游戏Mod/插件制作教程06 - Harmony补丁基础
前言 通过之前的教程,我们已经知道如何编写基本的插件,如果你有C#和Unity的基础,这个时候已经可以做出一些功能了,比如通过按键修改游戏数据之类的.但是,这有很大的局限性,因为通常情况下,我们并不想 ...
- WordPress插件制作教程概述
接下来的一段时间里,开始为大家讲解WordPress插件制作系列教程,这篇主要是对WordPress插件的一些介绍和说明,还有一些我们需要注意的地方,以及需要掌握的知识. WordPress插件允许你 ...
- Unity游戏开发官方入门教程:飞机大战(六)——创建子弹
Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...
- Unity游戏开发官方入门教程:飞机大战(二)——创建飞船对象
Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...
- Unity游戏开发官方入门教程:飞机大战(五)——实现飞船控制脚本
Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...
- Unity游戏开发官方入门教程:飞机大战(十)——敌人的爆炸和移动
Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...
最新文章
- java将本地图片转为bas64_JAVA将图片(本地或者网络资源)转为Base64字符串
- Exp9 Web安全基础
- java生成dex_Java反编译Dex – jadx
- 基于SIMD的AVS整数反变换算法设计与优化
- 【SQL】SQL语法树
- c# Repeater中CommandArgument传多个参数
- 创建log文件的代码
- goldendb mysql_golden数据库
- 从数据库查询数据并输出到前台页面
- Java同步锁synchronized的最全总结
- 基于hilbert变换的数字信号_基于Hilbert变换数字调相信号解调算法研究.doc
- 编译安装libmodbus库
- 奥克兰大学计算机专业好找工作吗,留学选择奥克兰大学的计算机专业肯定不会后悔...
- MongoSocketOpenException: Exception opening socket
- mvp的全称_MVP是什么的缩写?王者荣耀中的MVP是什么意思?
- QT Q_OBJECT使用注意事项
- Less简介——CSS
- 【创科之龙】零基础学习嵌入式开发以及项目实战开发【第二期视频】
- 原生html例子,原生js的innerHTML用法示例
- 如何在团队合作中寻找自己的角色
热门文章
- excel中如何拷贝已经筛选出来的数据到另外的一表格中
- 一种准确预测核糖核酸假尿苷位点的新方法
- 计算机毕业设计net综合型体育场馆管理系统(系统+数据库+源码+文档)
- 如何将一张灰度图颜色反转
- 线性拟合的 R2 和p值怎么计算
- Sketch Essential Training: The Basics Sketch基本训练:基础知识 Lynda课程中文字幕
- 全民所有制事业单位辞退专业技术人员和管理人员暂行规定
- 抖音【实战】内容优化,选题脚本创作
- EasyClick脚本开发教程(7)抖音评论区指定概率随机点赞
- 提取LOL模型并在3DMax中贴好图导入到U3D中使用