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

星际2技能系统分析

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

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

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

数据结构

星际2的数据为树状结构
Unity3D自学笔记——星际2技能系统分析(一)_第1张图片

数据对象

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

Unity3D自学笔记——星际2技能系统分析(一)_第2张图片

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

GAME

游戏相关数据对象

Unity3D自学笔记——星际2技能系统分析(一)_第3张图片

Campaign

战役相关数据对象

Unity3D自学笔记——星际2技能系统分析(一)_第4张图片

Actor

演算器数据对象

Unity3D自学笔记——星际2技能系统分析(一)_第5张图片

Art And Sound

美术和声音数据对象

Unity3D自学笔记——星际2技能系统分析(一)_第6张图片

Terrain

地形数据对象

Unity3D自学笔记——星际2技能系统分析(一)_第7张图片

Hero

英雄

Unity3D自学笔记——星际2技能系统分析(一)_第8张图片

UI

界面

Unity3D自学笔记——星际2技能系统分析(一)_第9张图片

Advanced

高级

Unity3D自学笔记——星际2技能系统分析(一)_第10张图片

技能系统 ABE

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

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

如:灵能风暴的效果会持续几秒钟的时间,并且会在某一地区搜索单位时周期性的产生另外一个效果。这个搜索效果会产生在每个单位身上并造成伤害。
Unity3D自学笔记——星际2技能系统分析(一)_第11张图片
Behavior(行为)
效果所产生的行为,比如BUFF

你可能感兴趣的:(Unity3D)