前言
开发一个适用于arpg的技能系统,制作一个暗黑like的arpg原型!
本技能系统包含以下部分
- Variable 技能系统实现01 数值表
- 数据定义。kv键值对,k为string,v为string,有定义类型,可以用csv导入导出。
- 数值运算接口,IVarMagnitudeCalculation。
- Attribute 技能系统实现02 属性
- 角色属性。
- 属性快照。
- Event 技能系统实现03 事件
- 实现IEventScript接口,使用c#自定义逻辑
- 数据驱动,使用GAction配置
- 可视化脚本,使用UnityVisualScripting(实验性质)
- Effect 技能系统实现04 Effect
- 游戏性效果。
- 可以理解为buff,可以修改角色的属性,使用Attribute实现。
- 在某些特殊时机,触发各种事件。
- Motion 技能系统实现05 Motion
- 相当于时间轴,在各个时间点,触发各种事件。
- StateMotion,状态机motion,同时只能运行一个
- BackgroundMotion,后台运行的motion,不会打断StateMotion
- 除cost、cooldown等Ability本身的职能外,其他技能效果都是用Motion来组织。
- Projectile
- 投射物,是一个entity,例如一个火球
- AoE
- 范围定义,对象捕捉,是一个entity。
- 既可以是空间上的范围,也可以是概念上的范围。
- 可直接使用c#脚本实现所谓的范围,也可以使用数据驱动(TargetType)来实现。
- Ability
- 角色拥有的特殊能力。
- DataDriven
- 提供数据驱动编辑能力
- GAction
- 表一个实际操作,被各种event所调用。
- GAction全部都是caster对targets进行操作,不满足要求,就写脚本吧
- Target
- TargetType筛选entity,此阶段一般为物理检测。
- 可使用TargetFilter对entity进一步筛选,例如血量大于x。
技能展示
帧同步联机战斗
编辑器
Effect配置编辑
定点数3d碰撞检测