game background image

BepInEx配置管理器

作者:toebeann最后更新:2023-01-29 07:21:0828.3万37KB

深海迷航 BepInEx配置管理器-1-奇游Mod大师

前置依赖

Mod简介

BepInEx 5的插件/模块配置管理器,已针对Subnautica和Subnautica:Below Zero进行了调整。一种简单的方法,让用户配置插件的行为方式,而无需制作自己的GUI。用户可以更改任何设置
BepInEx 5的插件/模块配置管理器,已调整用于Subnautica和Subnautica:低于零

一种简单的方法,让用户配置插件的行为方式,而无需制作自己的GUI。用户可以更改您公开的任何设置,甚至是键盘快捷键。

按热键(默认为F5)可以在游戏中访问配置管理器。将鼠标悬停在设置名称上以查看其描述(如果有的话)。



如何使用


注意:.xml文件对插件开发人员很有用。在插件中引用ConfigurationManager.dll时,它将为IDE提供类型和方法的描述。用户可以忽略它。



本指南的其余部分面向插件开发人员。用户只需按照上面的说明进行安装,就完成了。


如何使我的mod兼容?

ConfigurationManager将自动显示插件的所有设置配置所有元数据(如描述、值范围)将由ConfigurationManager用于向用户显示设置。

在大多数情况下,您不必引用ConfigurationManager.dll或对设置进行任何特殊操作。只需确保添加尽可能多的元数据(这样做将帮助所有用户,即使他们直接使用配置文件)。始终添加描述性部分和键名、描述以及可接受的值列表或范围(如适用)。



如何将我的设置变成滑块?

指定可接受的值范围在创建设置时。如果范围为0f-1f或0-100,滑块将显示为%(这可以在下面覆盖)。

CaptureWidth=配置。绑定(“节”、“键”、1、新配置描述(“描述”、新可接受值范围<int>(0100));



如何将我的设置放入下拉列表?

指定可接受的值列表在创建设置时。如果使用枚举,则不需要指定可接受的值列表,将显示所有枚举值。如果你想隐藏一些值,你必须使用该属性。

注意:您可以添加System.ComponentModel.DescriptionAttribute添加到枚举项以覆盖其显示的名称。例如:


公共 名单 MyEnum
{
//Entry1将在组合框中显示为Entry1
条目1,
[说明(“Entry2将在组合框中显示为该字符串”)]
条目2
}



如何允许用户更改我的键盘快捷键/如何轻松检查按键?

添加类型设置键盘Shortcut.使用此设置的值检查输入(建议使用IsDown 的)在你的内部更新方法。

键盘Shortcut类支持修饰键-Shift、Control和Alt。它们被正确处理,防止了常见的问题,如K+Shift+Control在不应该触发K+Shift时触发K+Shift。


private ConfigEntry<KeyboardShortcut> ShowCounter { get; set; }

公共构造函数()
{
显示计数器=配置。绑定(“热键”、“显示FPS计数器”、新键盘快捷键(KeyCode.U、KeyCode.LeftShift));
}

私有void更新()
{
if(ShowCounter.Value.IsDown())
{
//操作按键
}
}



覆盖默认配置管理器行为

您可以通过传递特殊类的实例作为设置的标签来更改设置在配置管理器窗口中的显示方式。特殊类代码可以下载这里。只需下载.cs文件并将其拖动到您的项目中即可。

  • 您不必引用ConfigurationManager.dll即可工作。
  • 只要类名及其字段的声明保持不变,该类就可以工作。
  • 避免将类公开,以防止与其他插件发生冲突。如果你想在你的插件之间共享它,要么给每个插件一个
    复制或移动到您的自定义命名空间。
  • 如果游戏中未安装ConfigurationManager插件,则此类将被安全忽略,您的插件将正常工作。

以下是一个覆盖设置顺序并将其中一个设置标记为高级的示例:


//覆盖为高级和顺序
配置。绑定(“X”,“1”,1,新配置描述(“”,null,新配置管理器属性{IsAdvanced=true,Order=3});
//仅覆盖订单,I高级保留为ConfigMgr分配的默认值
配置。绑定(“X”,“2”,2,新配置描述(“”,null,新配置管理器属性{Order=1});
配置。绑定(“X”,“3”,3,新配置描述(“”,null,新配置管理器属性{Order=2});


如何为我的设置制作自定义编辑器?

如果您使用的设置类型不受ConfigurationManager支持,则可以添加一个抽屉行动为了它行动将在内部执行OnGUI 图形界面,使用GUILayout如下图所示绘制您的设置。

要使用自定义设置抽屉进行单独设置,请使用自定义抽屉属性类中的字段。有关属性类的更多信息,请参见上文。


void开始()
{
//将抽屉作为标签添加到此设置中。
配置。绑定(“节”、“键”、“某个值”
new ConfigDescription("Desc", null, new ConfigurationManagerAttributes{ CustomDrawer = MyDrawer });
}

静态无效MyDraw(BepInEx.Configuration.ConfigEntryBase条目)
{
//确保使用GUILayout。ExpandWidth(true)使用所有可用空间
GUI布局。标签(entry.BoxedValue,GUILayout.ExpandWidth(true));
}



全局添加自定义编辑器

您可以为设置类型的所有设置指定一个抽屉。通过使用配置管理器。自定义设置抽屉(类型,操作<SettingsEntryBase>).

警告:这要求您在项目中引用ConfigurationManager.dll,除非您确定所有用户都会安装它,否则不建议这样做。通常最好使用上述方法将自定义抽屉单独添加到每个设置中。


void开始()
{
配置管理器。注册自定义设置抽屉(类型(MyType),自定义抽屉);
}

静态void CustomDrawer(设置EntryBase条目)
{
GUI布局。标签((MyType)条目。Get(),GUI布局。ExpandWidth(true));
}
本工具由三方[bufftool]提供Attention Nomal
下载

立即下载模组

下载客户端搜索深海迷航后使用Mod大师工具。