Mod进阶教程8 模组重载 - WorldBoxOpenMods/ModLoader GitHub Wiki
模组重载/热更新
为了更快的开发(主要是修仙有需求), NML提供了简单的模组部分重载功能, 你可以在游戏运行时修改模组代码, 并且使得立即生效.
限制范围
- 修改函数, 不可修改函数的定义, 只能修改函数内部的代码
- 添加函数, 实验性功能, 可能添加失败
使用方法
- 为你的Mod主类实现
IReloadable
接口 - 运行游戏
- 在
IReloadable::Reload
方法中实现你的重载逻辑 - 为你需要热更新/添加的函数添加
Hotfixable
特性(IReloadable::Reload
也可以是Hotfixable
的函数) - 打开模组列表, 点击你的模组的重载按钮
注意!!!必看, 否则届时浪费大量时间就是活该
- 保证你的Reload方法不会重复添加键值对(特指
Dictionary::Add
), 尽量保证覆写而非添加 AssetLibrary<T>::Add
的覆写并不是完全安全的, 特别对于ActorAsset
,Actor
直接引用了ActorAsset
实例, 覆写时并不会更新Actor
的引用, 你需要自己手动更新或者仅更新ActorAsset
的字段- 你可以在运行时给函数添加/删除
Hotfixable
特性 - 匿名函数能够热更, 同样需要添加
Hotfixable
特性