美文网首页
塔防游戏——攻击方设计

塔防游戏——攻击方设计

作者: 贼老天 | 来源:发表于2019-06-28 15:35 被阅读0次

    塔防游戏相信大家并不陌生,几个主要元素如下:

    1、敌方士兵

    2、我方防御塔

    3、我方主城

    emmmmmmm好像就没了。

    人越狠,话越不多。不多说,接下来我们一步步把这几个功能做完。

    素材准备:

    网上随便找一些资源就行,不一定要和我一样。这里再次强调:

    网上获取的资源一定不能用作商业用途!!!!!!

    就本工程而言,资源有一下几种:

    敌人2个,分别拥有移动,攻击,待机,死亡四种动画

    防御塔3个,拥有待机,攻击两种动画

    人形防御塔可还行

    主城1个,主地形1组(内含各种杂草乱石)

    敌人地形(敌人能用来走的路)1种,防御塔地形(防御塔能放置的地方)1种,箭矢1个

    场景搭建:

    先从简单的功能做起:让敌人从生成点走到主城,看见主城就攻击。

    搭建一个简单场景:

    为了检测敌人寻路,最好是能转弯的道路

    敌人和主城有一个都有血量的属性,都会被攻击,这里为它们做能显示在头上的血条。

    以主城为例,在主城的子节点层创建一个Sprite做黄血条,设为黄色,取名“BloodStrip”,调整好大小:

    然后在BloodStrip的子节点层创建一个空物体,取名“Hp”,在Hp的子节点层再创建一个Sprite做红血条,名字“Red”,设为红色,大小和黄血条一样,把黄血色覆盖:

    接下来就移动红血条位置,让它左边边缘与父物体Hp的Y轴重合:

    然后再将Hp往右移动,让Y轴与黄血条左边缘重合(红血条刚好覆盖黄血条):

    这样我们只需要设置H的X轴大小,就可以控制红血条长度了

    ***这里请初学者注意,如果你选取的红血条图片资源不是纯色的、是有其他花纹的,则不能用这个方法。原因很简单,这种方法会把花纹拉长或压扁。大家可以下来想一下:这种情况下应该怎样来设置?

    后面在代码中只需要将当前血量与总血量的比值赋给Hp的X轴,就可以将血量信息显示在界面上了。敌人血条做法一样。

    做好后让BloodStrip处于禁用状态,受伤后才显示(这是游戏UI显示的一个约定俗成的规则)。

    代码编写:

    为主城与敌人创建一个基类脚本Character:

    创建主调脚本:用于游戏初始化和记录游戏死亡,挂在一个场景物体上:

    创建主城脚本,继承自Character脚本:

    敌人的脚本也继承自Charater,除了受伤和死亡之外还能攻击与移动:

    重点在移动方法上。因为敌人的移动带有寻路功能,这里没有采取Unity自带的NavMeshAgent,而是用脚本来实现,主要思路仿照盲人的行进方式,利用射线充当导盲棍,发现前方道路中断再从两边找新的行进路线:

    拐杖就是射线

    要利用好这个思路,场景中道路的搭建也有一定要求,道路都要挂上MeshCollider组件,方便射线检测。

    所有道路的Z轴指向路线前进方向

    道路的物体层设置为“Way”,主城也挂上碰撞器,物体层设为“City”。

    在敌人模型身上创建一个空物体为眼睛,取名为“Eye”,主要作用是从此为射线起始点,位置合适即可,注意,因为所有敌人都用的相同脚本,所以所有敌人的眼睛高度距离地面相同:

    正面看这些模型真特么惊悚

    当然每个敌人也请挂上碰撞器和刚体以及Animator组件:

    创建一个敌人状态机:

    重写初始化方法:

    编写移动方法,并在Update中调用:

    暂时把初始化方法放在Start中调用(后面我们会在创建的时候初始化),然后设置好血量、视野、速度、伤害,主城也设置好血量:

    先来看下寻路运行效果:

    蓝线检测前方道路,红圈检测周围道路

    寻路没有问题了,将攻击动画设为循环播放,然后将攻击方法放入攻击动画事件中,敌人看到主城就会自动攻击了:

    敌人主要功能就已经完成。现在我们来做敌人生成器。

    塔防游戏的敌人生成方式一般都是比较有规律的,比如先生成一组a敌人,跟着生成一组b敌人,每组敌人的生成间隔也恒定(当然,读者也可以自己尝试更丰富的出兵方法,比如让“某些特定敌人的血量减到某个阈值”作为触发条件等等):

    为了生成方便,我们来做一个定时器,可以重复并规律地调用一个生成敌人方法:

    把所有敌人放入一个路径中,创建一个空物体做敌人生成器,放在敌人生成点,创建脚本挂上去:

    做到这一步就可以像演示视频中那样点击按钮出兵了。

    相关文章

      网友评论

          本文标题:塔防游戏——攻击方设计

          本文链接:https://www.haomeiwen.com/subject/ywfecctx.html