模组教程
  • 🏠主页
  • 😀介绍
  • 😇玩家手册
    • 📕安装教程
    • 📔使用说明
    • 🐴注意事项
  • 😅模组制作教程
    • 😅预先准备
    • 😎创建一个模组
    • 😘常用NML功能
    • 🤔其他常用
    • 🥸BepInEx
  • 🤔基础概念
    • 👌模组声明
    • 🎨模组接口
    • 👌模组设置
    • 👍模组依赖
    • 🤗多语言文本
  • 😶‍🌫️资源加载
    • 📕概览
    • 😁Resources
    • 😂AssetBundle
  • 😪其他技术
    • 👌模组重载
    • 🫥事件监听
    • 😄上传模组
  • 🫨游戏内容添加
    • 🥳创建装备
  • 🤩用户交互界面
    • 🥳按钮
    • 😁交互栏
    • 😂内置预制体
    • 😄一般窗口
    • 😆自动布局窗口
  • 😘懒人福利
    • 😍基础模组
  • 🚗NML开发和OpenMods项目
    • 📕介绍
    • NML 开发
    • NML 模组文档
    • 示例模组
    • Unity开发工具包
    • 原版代码文档
Powered by GitBook
On this page
  • 介绍
  • default_config.json编辑
  1. 基础概念

模组设置

Previous模组接口Next模组依赖

Last updated 1 year ago

介绍

NML为ModConfig提供了友好的用户交互界面, 如下图所示

对于这样的配置, 你需要你的模组实现IConfigurable接口, 并通过GetConfig提供一个ModConfig实例传递和接收配置信息(当然, 如果你要用这个来实现其他的设置交互也是可以的).

对于BasicMod, 不需要考虑上面那句话, 你只需要在你的模组文件夹下创建一个default_config.json文件(ModTemplate已经为你创建好了这个文件), 并在其中添加/编辑你的配置信息即可.

default_config.json故名思意, 提供默认的配置信息, 在加载后会被写入到玩家的长期数据中. 对于在default_config.json中新增的项, NML会自动将其添加到玩家的长期数据中.

default_config.json编辑

该文件将会被解析为一个Dictionary<string, List<ModConfigItem>>实例, 其中string为配置组的名称groupId, List<ModConfigItem>为从上到下依次排列的配置项.

对于ModConfigItem, 你需要提供以下信息:

  1. Id: 配置项的唯一标识符, 用于在代码中获取配置项的值.

  2. Type: 配置项的类型, 目前有效的有SWITCH(开关), SLIDER(滑动条), TEXT(文本输入框).

  3. IconPath: 配置项的图标路径, 将会通过Resources.Load进行加载, 路径基于根目录. 如果不需要图标, 则可以不填写此项.

  4. TextVal: 如果Type=="TEXT", 则需填写此项(string), 作为文本输入框的默认值.

  5. FloatVal: 如果Type=="SLIDER", 则需填写此项(float), 作为滑动条的默认值.

  6. BoolVal: 如果Type=="SWITCH", 则需填写此项(bool), 作为开关的默认值.

  7. MinFloatVal: 如果Type=="SLIDER", 则此项(float)有效, 作为滑动条的最小值, 默认为0.

  8. MaxFloatVal: 如果Type=="SLIDER", 则此项(float)有效, 作为滑动条的最大值, 默认为1.

  9. Callback: 回调函数, 可选项.

对于Callback, 你需要定义一个静态函数, 这个函数接受一个参数(该ModConfigItem的值类型). 对于这样的ModConfigItem:

{
    "Id": "Example",
    "Type": "SLIDER",
    "FloatVal": 0.5,
    "Callback": "ExampleType:ExampleCallbackMethod"
}

需要实现这样的函数

namespace ANYNAMESPACE;

class ExampleType
{
    void ExampleCallbackMethod(float pUpdatedValue)
    {
        // 你的回调函数代码
    }
}

需要注意的是, 对于模组配置窗口的修改, 会在窗口关闭后一并应用, 而不是在修改时同步.

default_config.json的格式为, 你可以使用任何文本编辑器来编辑它.

除此之外, 你还需要为groupId和Id提供语言文本, 你可以见

🤔
👌
对应的配置文件示例
JSON
回调示例
多语言文本
ModConfig