温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Unity3D 战斗技能系统架构

发布时间:2020-03-03 15:18:20 来源:网络 阅读:12153 作者:jxw167 栏目:游戏开发

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

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

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

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

  

Unity3D 战斗技能系统架构

Unity3D 战斗技能系统架构

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

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

代码如下:

Unity3D 战斗技能系统架构

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

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

Unity3D 战斗技能系统架构

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

Unity3D 战斗技能系统架构

Unity3D 战斗技能系统架构

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

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

Unity3D 战斗技能系统架构

用于判断其是否死亡。

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

Unity3D 战斗技能系统架构

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

Unity3D 战斗技能系统架构

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

Unity3D 战斗技能系统架构

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

Unity3D 战斗技能系统架构

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

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



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI