ConfigEntry<T>

在插件功能的设计中,经常会有需要玩家自己配置的东西,比如插件的各种设置,快捷键的分配等。在BepInEx中,提供了一个ConfigEntry类简化了配置操作。

我们来看一段示例:

(注:由于在代码页中会删除尖括号,所以我使用空格隔开)

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);
        }
    }
}

ConfigBaseUnityPlugin的成员,是每个插件都自带的,通过这个Config进行绑定时,会自动以插件ID为文件名生成配置文件,如果你需要多个配置文件,可以手动创建ConfigFile对象。

绑定时有4个参数,分别是 分类 Key 默认值 描述。分类就是这个配置在哪个标签下,比如我们之前打开控制台窗口的时候,是在[Logging.Console]下,Key则是这个配置的名字,比如打开控制台时的Enabled,默认值则是在没有配置文件的情况下,创建配置文件时使用的值,描述可填可不填,主要是提醒玩家这个配置的用处是什么。

运行游戏(此章节的示例游戏为Mirror),可以看到控制台输出了10Hello

BepInEx/config下找到me.xiaoye97.plugin.Tutorial.cfg并打开,如图所示:

接下来,我们将10随便改一个别的数字,比如2233,将Hello改为xiaolin。再次启动游戏。
可以看到,插件已经不再输出默认值,而是我们修改过的值。

使用ConfigurationManager在游戏运行时修改配置文件

BepInEx有多个非常实用的通用插件,放在任何游戏都可以使用,本章介绍`ConfigurationManager插件,它可以在游戏内可视化的修改配置文件。

下载地址:https://github.com/BepInEx/BepInEx.ConfigurationManager/releases

安装插件后,在游戏中按F1打开配置管理界面,修改即可。

Last modification:September 14th, 2021 at 04:11 pm
如果觉得我的文章对你有用,请随意赞赏