Unity3D 战斗技能系统架构

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

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

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

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

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

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

代码如下:

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

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

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

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

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

用于判断其是否死亡。

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

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

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

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

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

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

时间: 2024-08-02 11:26:52

Unity3D 战斗技能系统架构的相关文章

Unity3D手游开发日记(2) - 技能系统架构设计

我想把技能做的比较牛逼,所以项目一开始我就在思考,是否需要一个灵活自由的技能系统架构设计,传统的技能设计,做法都是填excel表,技能需要什么,都填表里,很死板,比如有的技能只需要1个特效,有的要10个,那么表格也得预留10个特效的字段.在代码里面也是写死一些东西,要增加和修改,就得改核心代码,如果我要把核心部分做成库封装起来,就很麻烦了. 能不能做成数据驱动的方式呢? 改技能文件就行了,即使要增加功能,也只需要扩展外部代码,而不用改核心代码, 我是这么来抽象一个技能的,技能由一堆触发器组成,比

秒杀系统架构分析与实战

0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有: 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,

大型网站系统架构的演化(转)

前言 一个成熟的大型网站(如淘宝.京东等)的系统架构并不是开始设计就具备完整的高性能.高可用.安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式.技术架构.设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线.所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就:不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜索.下单.支付,例如腾讯,要解决数亿的用户实时消息传输,百度它要处理海量的搜索请求,他们都有各

dubbo框架----探索-大型系统架构设计(图解)

对于高并发系统的架构要求: 1. 负载均衡 2.高并发 3.高可用 4.面向服务架构 (Dubbo框架使用) 5.分布式缓存 (redis分布式缓存) 6.分布式全文检索 (solr分分布式全文检索) 7.分布式数据库集群 (mycat 集群mysql数据库) dubbo  简介 系统架构 redis 集群 solr 集群 mysql 集群

ios系统架构及常用框架

1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media layer).核心服务层(Core Services layer).核心操作系统层(Core OS layer)如图: (1) 触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作.它包括以下这些组件: Multi-Touch Event

软件体系结构---安卓系统架构之应用程序框架层分析---1

本博客只介绍安卓系统架构中的应用程序框架层 什么是应用程序框架? 应用程序框架可以说是一个应用程序的核心,是所有参与开发的程序员共同使用和遵守的约定,大家在其约定上进行必要的扩展,但程序始终保持主体结构的一致性.其作用是让程序保持清晰和一目了然,在满足不同需求的同时又不互相影响. 而对于安卓来说:Android系统提供给应用开发者的本身就是一个框架,所有的应用开发都必须遵守这个框架的原则.我们在开发应用时就是在这个框架上进行扩展.在这个框架中我们可以完全访问核心应用程序所使用的API框架,即我们

企业内部IT一体化系列之一:系统架构

有个构想,将企业内部IT的日常运维,管理以及员工服务等日常全部集合和汇总到一起,说起来简单,其实相当复杂,因为自己在之前的公司曾经做过,虽然还未做完,但是构想有了,期待能有机会实施,现在先把可行的成果展示出来,主要是以前技术定级的时候写的ppt的图,凑合看看吧. 平台架构: 这图是微软给的私有云体系,我基本就是照着这个来做的. 下图是我目前整个系统所有的架构: 大概讲解一下: 1:首先整个企业IT统一管理平台需要一个登入的接口,或者说WEB的平台,那么我用SharePoint来做,WFE01,W

适应多场景应用的web系统架构探讨

背景: 虽然身处互联网时代,但还有很多信息系统仍运行在内部网络中,例如,企事业内部的OA系统,医院的HIS系统,银行的管理系统等.软件公司会针对系统应用环境,对信息系统进行逻辑业务上的修改.因此,本文主要介绍一种适应于多场景应用的web系统架构,供相关人员讨论研究. 1 系统框架图 2 分层的优势 (1)解耦:降低代码耦合度,允许前后端的分离,显示与业务的分离,前端开发与后台开发的分离. (2)复用:面向接口编程,面向接口实现,面向接口形成文档,提高接口函数的复用. (3)固化通用业务逻辑. (

查看Linux系统架构类型的5条常用命令

导读 很多时候我们都需要查看当前 Linux 系统是 32 位还是 64 位系统架构类型,本文中我将向大家推荐 5 条常用命令.无论你使用的是桌面版或是只装了文本界面的 Linux 环境,以下命令几乎可以通吃所有 Linux 发行版,例如:RHEL.CentOS.Fedora.Scientific Linux.Debian.Ubuntu.Linux Mint.OpenSUSE 等等. 1. uname 命令 uname -a 命令可以直接显示 Linux 系统架构的命令,安几乎可以工作在所有 L