ConfigEntry<T>
在插件功能的设计中,经常会有需要玩家自己配置的东西,比如插件的各种设置,快捷键的分配等。在BepInEx中,提供了一个ConfigEntry类简化了配置操作。
我们来看一段示例:
(注:由于阿B在代码页中会删除尖括号,所以我使用空格隔开)
using BepInEx;
using BepInEx.Configuration; //ConfigEntry的命名空间
namespace PluginTutorial
{
[BepInPlugin("me.xiaoye97.plugin.Tutorial", "Tutorial Plugin", "1.0")]
public class PluginTutorial : BaseUnityPlugin
{
ConfigEntry< int > intConfig;
ConfigEntry< string > stringConfig;
void Start()
{
//绑定配置文件
intConfig = Config.Bind< int >("config", "TestInt", 10, "测试用Int");
stringConfig = Config.Bind< string >("config", "TestString", "Hello", "测试用String");
//使用配置文件中的值
Logger.LogInfo(intConfig.Value);
Logger.LogInfo(stringConfig.Value);
}
}
}
Config是BaseUnityPlugin的成员,是每个插件都自带的,通过这个Config进行绑定时,会自动以插件ID为文件名生成配置文件,如果你需要多个配置文件,可以手动创建ConfigFile对象。
绑定时有4个参数,分别是 分类 Key 默认值 描述。分类就是这个配置在哪个标签下,比如我们之前打开控制台窗口的时候,是在[Logging.Console]下,Key则是这个配置的名字,比如打开控制台时的Enabled,默认值则是在没有配置文件的情况下,创建配置文件时使用的值,描述可填可不填,主要是提醒玩家这个配置的用处是什么。
运行游戏(此章节的示例游戏为Mirror),可以看到控制台输出了10和Hello
在BepInEx/config下找到me.xiaoye97.plugin.Tutorial.cfg并打开,如图所示:
接下来,我们将10随便改一个别的数字,比如2233,将Hello改为csdn。再次启动游戏。
使用ConfigurationManager在游戏运行时修改配置文件
BepInEx有多个非常实用的通用插件,放在任何游戏都可以使用,本章介绍ConfigurationManager插件,它可以在游戏内可视化的修改配置文件。
下载地址:https://github.com/BepInEx/BepInEx.ConfigurationManager/releases
安装插件后,在游戏中按F1打开配置管理界面,修改即可。