技能编辑器
December 1, 2024 · View on GitHub
看遍了网上许多技能编辑器还在用SO作为运行时序列化,于是决定自己写一个运行时的技能编辑器,实现了数据逻辑分离,并且分离了 runtime 与 Editor 逻辑,并且支持定点数以及网络帧同步使用。
这是我与小暗一起制作的一款技能编辑器,基于 nobug 的开源项目,增加了运行时。注意!该编辑器依赖了 Odin,请自行解决。
特性
- 数据与逻辑分离:实现了数据类与逻辑类的分离,提升代码的可维护性和扩展性。
- Runtime 与 Editor 分离:将运行时逻辑和编辑器逻辑分开,确保两者独立发展。
- 支持定点数:支持定点数运算,适用于需要高精度计算的场景。
- 网络帧同步:支持网络帧同步,适用于多人在线游戏和实时应用。
运行时结构
运行时分为数据类与逻辑类:
- 数据类:负责存储技能相关的数据。
- 逻辑类:必须添加
VM特性来与数据类绑定,实现技能的具体逻辑。
PreviewLogic 类
PreviewLogic 类用于实现编辑器中重写逻辑类的功能。如果想要在预览时执行不同的逻辑,请按照以下步骤操作:
- 继承
PreviewLogic类。 - 添加
CustomPreview特性以绑定逻辑类。 - 重写生命周期方法以实现自定义逻辑。