Unity3D自学笔记——星际2技能系统分析(一)

来源:互联网 发布:大闹天宫化身2进3数据 编辑:程序博客网 时间:2024/05/29 12:33

星际2技能系统分析

最近一直在想设计一个易扩展的,可配置的技能系统框架。看了几个项目源码,可能自己功力不够,感觉类与类之间的套用很混乱,看的云里雾里的,然后网上到处找资料。

对两个技能设计比较感兴趣,一个是Dota2
http://moddota.com/forums/discussion/14/datadriven-ability-breakdown-documentation
一个是星际2
https://www.sc2mapster.com/wiki/galaxy/data/

目前先重点关注下星际2的技能系统,由于没有资料介绍,只能通过星际2的地图编辑器去揣测。

数据结构

星际2的数据为树状结构
这里写图片描述

数据对象

星际2的整个数据对象都是通过XML进行配置的

这里写图片描述

星际2按照上图对数据对象进行了分类

GAME

游戏相关数据对象

这里写图片描述

Campaign

战役相关数据对象

这里写图片描述

Actor

演算器数据对象

这里写图片描述

Art And Sound

美术和声音数据对象

这里写图片描述

Terrain

地形数据对象

这里写图片描述

Hero

英雄

这里写图片描述

UI

界面

这里写图片描述

Advanced

高级

这里写图片描述

技能系统 ABE

貌似都把星际2的技能系统称为ABE(Ability, Behavior, Effect)。
Ability(技能)
技能的基础数据,比如名字,ID,消耗等。
Effect(效果)
技能所产生的效果,比如造成伤害,星际2的Effect与动画,特效,音效等是没有关系的,它是负责逻辑运算,所有的动画,特效都是在Actor里面进行处理。

效果又可以生成效果或行为,所以效果也是个树状结构。

如:灵能风暴的效果会持续几秒钟的时间,并且会在某一地区搜索单位时周期性的产生另外一个效果。这个搜索效果会产生在每个单位身上并造成伤害。
这里写图片描述
Behavior(行为)
效果所产生的行为,比如BUFF

1 0