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

news2025/4/17 19:45:02

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/18775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive环境搭建

3.1 Hive环境搭建 3.1.1 Hive引擎简介 Hive引擎包括:默认MR、tez、spark Hive on Spark:Hive既作为存储元数据又负责SQL的解析优化,语法是HQL语法,执行引擎变成了Spark,Spark负责采用RDD执行。 Spark on Hive : Hi…

人人开源后台项目maven构建(yyds)

人人开源后台项目maven构建(yyds) npm run serve 和 npm run dev 的区别在日常运行vue 项目中 在终端 运行命令有时用到 npm run serve 有时是 npm run dev。那么,什么时候用到 serve ,什么时候用到 dev 呢? 他们的区别是什么?一…

【学习笔记】《Python深度学习》第四章:机器学习基础

文章目录1 机器学习的四个分支1.1 监督学习1.2 无监督学习1.3 自监督学习1.4 强化学习2 评估机器学习模型2.1 训练集、验证集和测试集2.2 注意事项3 数据预处理、特征工程和特征学习3.1 神经网络的数据预处理3.2 特征工程4 过拟合与欠拟合4.1 减小网络大小4.2 添加权重正则化4.…

postgresql安装配置和基本操作

1.安装 linux上安装 最好是centos7.6或者7.8, 参考官网 PGSQL的官方地址:PostgreSQL: The worlds most advanced open source database PGSQL的国内社区:PostgreSQL中文社区:: 世界上功能最强大的开源数据库... 点击download PostgreSQ…

【Struts2】二_Struts2参数映射、核心配置文件struts.xml中的标签与属性的使用

文章目录Struts2一、参数映射:▶传递基本数据类型:▶传递对象二、核心配置文件struts.xml:2.1、constant标签2.2、package标签2.3、action标签三、Action配置:3.1、Action简介:3.2、继承ActionSupport类:3.…

JAVA初阶——继承和多态

目录 一、继承 1、定义: 2、用法: 3、使用从父类继承的成员 (1)、子类使用从父类继承的成员变量 (2)、子类使用从父类继承的成员方法 4、super (1)、定义: 5、子…

ID3算法

目录 ID3算法 例子 ID算法总结 ID3算法 ID3算法是在每个结点处选取能获得最高信息增益的分支属性进行分裂 在每个决策结点处划分分支、选取分支属性的目的是将整个决策树的样本纯度提升 衡量样本集合纯度的指标则是熵; 举例来说,如果有一个大小为10的…

被裁后,狂刷607页JUC源码分析笔记,立马拿蚂蚁offer

前言 可能大家最近,在公众号,或者各大自媒体平台,都能够刷到,因为疫情美国经济面临结构性衰退,美联储疯狂印钞导致世界性经济波动,导致国际环境不是很好,也间接影响到了中国,中国也…

跟艾文学编程《Python基础》(2)Python 容器

作者: 艾文,计算机硕士学位,企业内训讲师和金牌面试官,公司资深算法专家,现就职BAT一线大厂。 邮箱: 1121025745qq.com 博客:https://wenjie.blog.csdn.net/ 内容:跟艾文学编程《Pyt…

JAVA微服务场景下分布式日志收集排查问题实战

问题产生的根由?不同服务的日志存在哪里?我们怎么去排查线上问题? 问题场景:我们部署的java服务可能有几十个,不同的项目里面他是看不到别的服务的日志,只有服务的返回msg消息,相比传统的单体服…

计算机体系结构:1.1.系统加速比计算例题

文章目录题目内容题目分析题目求解题目内容 假设在某程序的执行过程中,浮点操作时间占整个执行时间的10%,现希望对浮点 操作加速 。 (1)设对浮点操作的加速比为Sf,请推导出程序总的加速比S和Sf之间的关系表达式&#…

IoU的计算实现详解(基于Python)

文章目录1. 交并比(IoU)2.原理3.代码实现1. 交并比(IoU) 具体来说,它是两边界框相交部分面积与相并部分面积之比,如下所示: 也就是两个框的交集和两个框的并集之比。 2.原理 这里详细解释一…

如何安装与配置Node.js

Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型, 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等…

使用轻量应用服务器搭配宝塔面板搭建可道云kodbox私有云网盘的方法教程

你是否有过网盘下载速度只有十几KB,时不时出现网盘的文件被删除的问题,不如自己搭建一个云网盘吧,只需要一云服务器,即可搭建一个跟某度云一样的云盘。可以自由下载,不限制网速,随时都可上传下载。这篇文章…

nginx+redis+jvm三级缓存设计与落地实现

由于涉及到个人隐私,使用的是阿里云平台,所以下面的IP地址和密码我都做了修改。不是真实的地址。此模拟秒杀商品列表信息缓存案例实现的技术解决方案。 远程环境1版本操作系统ubuntu22.04openresty1.21.4.1jdkOracle JDK17IP192.168.1.1远程环境2版本redis7.0.5Springboot2.5…

149. SAP UI5 Table 控件数据进行 Excel 导出时如何进行格式控制

文章目录 字符串类型的显示控制数值类型(Number)的值显示控制日期和时间显示的格式控制布尔值的显示控制BigNumber 和百分比数值的显示总结本教程的前一步骤,我们成功的将 sap.m.Table 控件里显示的数据导出到了本地 Excel 文件中。 下图是使用 sap.m.Table 显示的表格页面:…

菜小白聊聊开源和开源协议

最近想入linux的深坑,于是开启了马哥sre课程的探险之旅。在了解到Linux是一款自由和开放源码的类UNIX操作系统的历史时,深深被开源精神所折服。也强烈感受到了开源精神的伟大。也正是因为有了开放源码的精神,才有了国产百花齐放的android系统…

【JUC源码专题】AQS 源码分析(JDK8)

文章目录同步队列同步队列结点 Node同步队列状态 state获取互斥锁acquire 方法tryAcquire 方法获取互斥锁addWaiter 方法enq() 入队acquireQueued()setHead 方法设置头节点shouldParkAfterFailedAcquire()parkAndCheckInterrupt()cancelAcquire 发生异常,取消线程获…

第七章第一节:顺序查找和折半查找

文章目录教程1. 查找的基本概念1.1 对查找表的常见操作1.2 查找算法的评价指标2. 顺序查找2.1 顺序查找的算法思想2.2. 顺序查找的实现2.3 查找效率分析2.4 顺序查找的优化(对有序表)2.5 用查找判定树分析ASL2.6 顺序查找的优化(被查概率不相…

在centos中注册gitlab runner

注册runner 有几种不同的方式,这里介绍的是在centos7中使用 rpm包来安装 按照gitlab runner的官网链接里面的介绍: gitlab runner 链接 下载 官网描述: ## Replace ${arch} with any of the supported architectures, e.g. amd64, arm, ar…