😘常用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的结果作为参数.
模组设置
BasicMod默认是一个提供设置界面的Mod, 你可以通过GetConfig来获取ModConfig实例, 具体用法见模组设置
多语言
在模组文件夹下创建Locales文件夹, 参考ModTemplate中的写法即可. 目前仅支持json和csv文件.
其他常用特性
日志
NeoModLoader.services.LogService提供了
一般的
LogInfo,LogWarning,LogError三件套,打印调用堆栈的
LogStackTraceAsInfo,LogStackTraceAsWarning,LogStackTraceAsError在多线程情况下使用的
LogInfoConcurrent,LogWarningConcurrent,LogErrorConcurrent.
贴图
在模组文件夹下创建一个名为GameResources的文件夹, 其中的.png,.jpg,.jpeg会由对应的.meta文件或sprites.json文件解释然后加载进游戏, 可以通过Resources.Load, SpriteTextureLoader.getSprite相关函数进行加载. 具体见模组资源概览.
NeoModLoader.utils.SpriteLoadUtils提供了
LoadSingleSprite(string)来加载指定系统路径下的图片文件LoadSprites(string)搜寻相关联的.meta文件(解释为一个TextureImporter, 并提供了一个SpriteSheet)或sprites.json来加载路径下的图片文件
模组名/作者/简介多语言
如果要你的模组在英文环境下 模组名/作者/简介显示为英文(en),则需要添加本地化文本,相应的key为:
模组名_en作者_en简介_en
AssetBundle拓展
NeoModLoader.utils.AssetBundleUtils提供了加载AssetBundle文件为WrappedAssetBundle的方法(同时避免重复加载).
NeoModLoader.utils.WrappedAssetBundle提供了类似Resources.Load, Resources.LoadAll的方法来加载资源
Last updated