在Unity中制作完整的技能系统(介绍篇)
大噶吼呀,还是我暴躁老哥酒九。最近的我遇到了游戏荒,于是我就重新去玩了玩《英雄联盟》,结果发现还是一如既往的强了(不是)。对于这款游戏我就不用多做赘述了,它对我的影响是很大的,我虽然在中途有当过一段时间的云玩家(S5,S6)不过也是从第一次公测就开始玩的,不知不觉它都走过十年了,还是相当的感慨。
当然,今天的主题肯定不是发表我对这款游戏的情感小作文。在《英雄联盟》中每个英雄都有属于自己的技能(大多是5个,部分更多),在其他游戏比如《暗黑破坏神》中每一个职业也有属于自己的技能树,拥有多种技能。那么如果在我们自己做的游戏中我们也需要多种技能我们应该怎么办呢?
第一反应我们可能是就将每一个技能单独制作一个脚本,将技能的数据,释放方式,目标选择,释放效果等都放在这个脚本中,写好之后只需要调用就好了。但是,这样子的话万一我们的需要的技能一多或者后期需要对技能进行修改都是一个很繁琐和复杂的过程。那这个时候我们就可以通过将技能中的各个模块进行细分,将同样的模块进行统一的管理,再将这些管理者组合起来,这些互相关联的脚本合集,我们就把他称为技能系统(Skill System)。
系统结构介绍
首先我们需要对技能中的部分进行一个划分,通过观察我们不难发现在多个技能中我们经常能够发现一些相同的内容(以下的例子均来