技能编辑器

December 1, 2024 · View on GitHub

看遍了网上许多技能编辑器还在用SO作为运行时序列化,于是决定自己写一个运行时的技能编辑器,实现了数据逻辑分离,并且分离了 runtime 与 Editor 逻辑,并且支持定点数以及网络帧同步使用。

这是我与小暗一起制作的一款技能编辑器,基于 nobug 的开源项目,增加了运行时。注意!该编辑器依赖了 Odin,请自行解决。

特性

  • 数据与逻辑分离:实现了数据类与逻辑类的分离,提升代码的可维护性和扩展性。
  • Runtime 与 Editor 分离:将运行时逻辑和编辑器逻辑分开,确保两者独立发展。
  • 支持定点数:支持定点数运算,适用于需要高精度计算的场景。
  • 网络帧同步:支持网络帧同步,适用于多人在线游戏和实时应用。

运行时结构

运行时分为数据类与逻辑类:

  • 数据类:负责存储技能相关的数据。
  • 逻辑类:必须添加 VM 特性来与数据类绑定,实现技能的具体逻辑。

PreviewLogic 类

PreviewLogic 类用于实现编辑器中重写逻辑类的功能。如果想要在预览时执行不同的逻辑,请按照以下步骤操作:

  1. 继承 PreviewLogic 类。
  2. 添加 CustomPreview 特性以绑定逻辑类。
  3. 重写生命周期方法以实现自定义逻辑。