👌模组重载

介绍

这可以说是整个NML里最有技术的一个内容了, 但它的使用方法非常简单.

你只需要会加一行[Hotfixable], 设置Config.isEditor=true, 然后点一下按钮就差不多了.

这个功能一般用来Debug, 考虑这样的一个场景:

这里有一个bug, 从游戏开始到这个bug触发需要非常长的一段时间.

这个bug在存读档后就会消失.

这个bug在出现后会保持一段时间.

如果采用原始的, 加Log, 然后不断重启游戏来获取信息, 并进行修改测试的方法, 毫无疑问, 会消耗极大量的时间.

如果你使用这个技术, 那么, 你可以暂停游戏, 然后现场修改模组代码并添加log或尝试修复bug, 然后简单地点击重载模组, 即可查看结果.

除此之外, UI设计也是, 在不使用Unity Editor(NeoMod的开发包可以使用Unity Editor进行设计并使用IDE调试模组, 尚未公开, 但C# 8实在不好用), 纯靠代码, 也可以在模组主类的Reload中添加对UI组件的摧毁和重新初始化.

使用方法

  1. 让你的模组主类实现IReloadable模组功能接口.

  2. 运行游戏

  3. 遇到问题

  4. 给需要修改的函数添加Hotfixable特性

  5. 修改函数

  6. 点击游戏内的模组重载按钮

使用示例

视频没录, 等等吧, 上面应该说得很清楚了.

代码的示例第一部分arrow-up-right

代码的示例第二部分arrow-up-right

提示

  1. MonoBehaviour的几个如Awake,Update等函数无法添加Hotfixable特性

  2. 构造函数和析构函数不能添加Hotfixable特性

  3. Reload函数本身也能添加Hotfixable特性

  4. 你可以在游戏运行时给别的函数加上Hotfixable

  5. 你可以在游戏运行时定义新的函数, 也需要标注Hotfixable

  6. 匿名函数也可以标注Hotfixable进行热更新, 下面所示代码

Last updated