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

常用NML功能

对于BasicMod

日志

BasicMod提供了LogInfo, LogWarning, LogError三个静态函数来打印日志, 会带上模组名称的前缀

实例

BasicMod提供了Instance静态属性可以直接访问模组主类的实例

模组信息

BasicMod提供了GetDeclaration能够获取模组声明信息(ModDeclare, 不是ModDeclaration, 这个名给可恶的NCMS用作命名空间了, 为了方便代码编写, 故改名), 包括模组名, 所在文件夹等, 具体定义如下

// 部分字段不在此处展示, 具体见 `基础概念/模组声明`
public class ModDeclare
{
    // 模组名
    public string Name { get; private set; }
    // 模组ID
    public string UID { get; private set; }
    // 作者
    public string Author { get; private set; }
    // 版本
    public string Version { get; private set; }
    // 描述/简介
    public string Description { get; private set; }
    // 仓库地址
    public string RepoUrl { get; private set; }
    // 必需依赖
    public string[] Dependencies { get; private set; }
    // 可选依赖
    public string[] OptionalDependencies { get; private set; }\
    // mod.json文件所在文件夹路径
    public string FolderPath { get; private set; } = null!;
    // 图标路径(相对于mod.json文件所在文件夹路径)
    public string IconPath { get; private set; }
}

BasicMod提供了GetLocaleFilesDirectory(ModDeclare)能够直接获取本地化文件所在文件夹路径. 传入GetDeclaration的结果作为参数.

模组设置

多语言

在模组文件夹下创建Locales文件夹, 参考ModTemplate中的写法即可. 目前仅支持json和csv文件.

其他常用特性

日志

NeoModLoader.services.LogService提供了

  • 一般的LogInfo,LogWarning,LogError三件套,

  • 打印调用堆栈的LogStackTraceAsInfo, LogStackTraceAsWarning, LogStackTraceAsError

  • 在多线程情况下使用的LogInfoConcurrent, LogWarningConcurrent, LogErrorConcurrent.

贴图

NeoModLoader.utils.SpriteLoadUtils提供了

  • LoadSingleSprite(string)来加载指定系统路径下的图片文件

  • LoadSprites(string)搜寻相关联的.meta文件(解释为一个TextureImporter, 并提供了一个SpriteSheet)或sprites.json来加载路径下的图片文件

模组名/作者/简介多语言

如果要你的模组在英文环境下 模组名/作者/简介显示为英文(en),则需要添加本地化文本,相应的key为:

  1. 模组名_en

  2. 作者_en

  3. 简介_en

AssetBundle拓展

NeoModLoader.utils.AssetBundleUtils提供了加载AssetBundle文件为WrappedAssetBundle的方法(同时避免重复加载).

NeoModLoader.utils.WrappedAssetBundle提供了类似Resources.Load, Resources.LoadAll的方法来加载资源

Previous创建一个模组Next其他常用

Last updated 1 year ago

BasicMod默认是一个提供设置界面的Mod, 你可以通过GetConfig来获取ModConfig实例, 具体用法见

在模组文件夹下创建一个名为GameResources的文件夹, 其中的.png,.jpg,.jpeg会由对应的.meta文件或sprites.json文件解释然后加载进游戏, 可以通过Resources.Load, SpriteTextureLoader.getSprite相关函数进行加载. 具体见.

😅
😘
模组设置
模组资源概览