Unity3D战斗技能系统架构-创新互联

  大家在玩游戏的时候,经常会看到各种技能特效,远近***,非常绚丽,角色的打击感非常吸引玩家,其实这就是我们通常说的战斗技能系统,大家如果第一次去实现这个战斗系统,可能感觉无处下手,再被策划的文案一搞,云里雾里,在这里我就跟大家简单的说一下如何架设技能系统。

成都创新互联是专业的黄陵网站建设公司,黄陵接单;提供成都网站设计、网站制作、外贸营销网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行黄陵网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

  在实现战斗系统的时候,首先大家思路一定要明确,知道如何去架设,在不知道如何实现不要忙于写代码,想清楚了再写。

  那现在我们假设实现一个枪战的战斗系统,首先会有各种***,***发射的***是不同的,决定了他的破坏程度是不同的,这就涉及一个***与被击打物体的特效。那我们如何去设计?

  先给大家看一下已经实现的效果图:

Unity3D 战斗技能系统架构

Unity3D 战斗技能系统架构

接下来我们开始架构我们的技能。

首先我们针对武器和破坏,这两个设计两个基类,为的是扩展不同的武器,以及扩展不同的破坏程度。

代码如下:

Unity3D 战斗技能系统架构

以上是Damage的基类我们定义了四个参数,一个是释放的特效,第二个是自己,第三个是破坏程度,第四个是破坏的目标。

我们的破坏类就要继承于这个基类方便扩展,比如我们的设计代码是这样的:

Unity3D 战斗技能系统架构

首先要有判断是否爆炸,以及爆炸的半径,破坏力度,激活时间等,只要一旦涉及到力度,大家应该立刻想到使用Rigibody这个刚体插件。当然这个函数里还有破坏的函数,在这里需要有一个碰撞体检测,就是说×××碰到需要破坏的物体需要根据其碰撞体进行检测。

Unity3D 战斗技能系统架构

Unity3D 战斗技能系统架构

我们需要根据碰撞体去检测是否发生了碰撞,通过OCollisionEnter进行判断碰撞体是否发生了。

为了调用方便我们实现了一个DamageManager管理类

Unity3D 战斗技能系统架构

用于判断其是否死亡。

接下来我们需要设计武器基类:

Unity3D 战斗技能系统架构

这上面也有一些参数,目标,速度轴等吧。那么我们武器的实现也是继承这个类。

Unity3D 战斗技能系统架构

武器系统的设计就完成了,接下来我们需要设置武器控制类

Unity3D 战斗技能系统架构

用于发射武器,同时我们需要武器发射类,对于这个类的设计,我们也将其继承于武器基类,其实这个可以独立实现:

Unity3D 战斗技能系统架构

爆炸的时候,需要涉及到特效的使用,如果整个都是粒子的话,我们不需要脚本控制,如果不是粒子我们需要脚本控制,也就是爆炸类:

Unity3D 战斗技能系统架构爆炸类需要绑定到特效上的,一个简单的武器系统就完成了。其实复杂的技能系统只是按照这个思路进行扩展,简单的技能系统实现了,复杂的也不会远了。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:Unity3D战斗技能系统架构-创新互联
浏览路径:http://scyanting.com/article/cdpsce.html