UE4蓝图-杨一鸣塔防游戏全套学习笔记
整体上添加了一些自己的想法来制作,感谢大佬的教程
塔防游戏制作
1.工程准备新建项目-导入素材
2.新建地形-新建spline样条组件-在地图上绘制出想要的塔防怪物移动路线-通过样条来实现怪物的移动路径。(与教程中的方法不同,相对来说可以稍微简单一点)

3.构建怪物主蓝图-通过其子类蓝图来控制不同类型的怪物-同时在主蓝图里面写敌人的前进逻辑。

4.构建子类怪物蓝图,在其中导入对应的怪物资源,添加动画,调整位置。
同时在怪物蓝图的胶囊体组件中将碰撞预设设为:避免怪物不能重叠或者和子弹不能重叠等问题。

5.在路线图蓝图中写怪物生成出来的逻辑,即自定义事件:敌人生成事件
构建结构:敌人类型数量,来存放所需的值。同时在路线蓝图中新建变量:敌人类型数量-类别选择为刚刚创建的结构,数组类型:

6.根据上面建好的,开始在路线蓝图中书写生成敌人的逻辑:



书写完毕后,就完成了初步的地图构建,路线逻辑,敌人生成逻辑等。
7.开始制作塔基和子弹:
基础逻辑:
(1)事件开始运行--先设置一个自定义事件(检测周围有没有敌人),通过(以事件设置定时器)来实现持续检测是否有敌人--检测敌人事件中将范围内检测到的敌人手机到一个数组(所有敌人)--通过分支来进行下一步--当(所有敌人)中有敌人时,随机选择一位敌人(当前选择的敌人)--选择后关闭检测

(2)设置子弹总类—实现子弹的发射,每个塔台子弹细节在其子类蓝图实现:

(3)检测到敌人后,开始转动塔台,如下第一张图片——接着辨认与(当前选择的敌人)距离是否超过自己想要的最大距离,未超过——执行(发射子弹)事件,超过——回到(1)开始,重新检测选择下一个敌人,如下第二张图片:


(4)事件(发射子弹):其可以实现子弹在未检测到敌人是自动装填好,一旦检测到敌人就马上攻击,无需等待攻击时我们所设置的每发子弹0.5秒的发射间隔,更加自然(很妙啊!!!)

8.添加子弹伤害和敌人生命:
(1)添加子弹伤害后,①由于第一个怪物被打死后炮台失去了(所选择的敌人)目标,会停止运转,所以需要在塔基蓝图中设置(所选择的敌人)无效时塔重新检测敌人。②多个炮台发射子弹后,有的子弹可能没到怪物身上怪物就已经死了,所以直接加一个销毁子弹在子弹总类中,以免子弹乱飞。


(2)敌人死亡:设置敌人初始生命值,获取伤害,检测当前生命值,是否不大于0,是,则敌人死亡,播放死亡动画(记得修改mesh碰撞),否,则继续运行。

9.设置终点蓝图:
在游戏模式中添加变量:血量;在敌人总类中添加变量:伤害

10.创建UI:
(1)血量UI:基础结如下

在血量百分比上添加绑定:绑定自己游戏模式中的血量,记得÷100。

在金币文字上添加绑定:获取1gamemode中的金币数值,用字符串附加到文字上,实时返回节点,达到更改金币数值的目的。

注意问题:如上操作敌人死亡后尸体进入终点一样会扣血,改正方法:
在终点蓝图中添加一个检测敌人死亡的分支,敌人未死亡进入终点才扣血。

(2)升级UI:先设计出基础框架-接着给两个按钮设置点击事件。

花费按钮的内置函数:当塔到达满级时就不再显示升级按钮,
绑定在可视性上,如下:

接着给花费设置文本事件去更改每个等级显示的升级金币数量,最后给升级按钮设置点击事件:如下
注意:升级按钮会调用在塔基中的事件(升级),记得设置每个等级升级完成后减少对应的金币数量。

下面是出售塔按钮的点击事件,基本操作如上:主蓝图如下:

11.塔基升级:
设置点击光圈会出现升级UI,开始先移除所有UI,保证同时只有一个UI:

接着生成UI,并且设置其位置在鼠标点击的位置:

然后设置自定义事件:升级和出售,如下。
注意:升级塔时设置好每一级会出现的网格体(尤其注意一下大小),还有设置每一级的光圈颜色。出售塔后记得设置光圈颜色到等级0时。


12.不同等级子弹的制作:
不同等级子弹拥有不同效果:不同伤害,外型特效,射速以及攻击范围。
一级子弹:绿色,射速1500,伤害10,攻击范围500,发射速度0.5秒一个
二级子弹:蓝色,射速1800,伤害20,攻击范围600,发射速度0.45秒一个
三级子弹:紫色,射速2200,伤害35,攻击范围700,发射速度0.40秒一个
四级子弹:红色,射速2800,伤害50,攻击范围800,发射速度0.35秒一个
五级子弹:金色,射速3500,伤害100,攻击范围1000,发射速度0.3秒一个
标红的范围会鬼畜乱转,暂定600
13.不同等级怪物的血量,价值,伤害与速度:
怪物1:血量200,价值50,伤害5,速度600
怪物2:血量500,价值100,伤害7.5,速度400
怪物3:血量2000,价值200,伤害10,速度500
怪物4:血量5000,价值300,伤害15,速度800
怪物5:血量10000,价值400,伤害20,速度1000
14.不同等级塔的升级花费和售出塔的收获:
建造一级塔:花费20,出售10
建造二级塔:花费50,出售35
建造三级塔:花费100,出售85
建造四级塔:花费200,出售185
建造五级塔:花费400,出售385
15.开始界面,胜利界面以及死亡界面:
开始界面:新建一个地图作为主界面,在其关卡蓝图中添加主界面UI

胜利界面: (bug修复完毕)

Bug修复:如果游戏失败,但是最后的敌人生成完毕,场上的敌人被销毁,系统检测到敌人没了,就会同时放出死亡和胜利界面。解决方法:
将游戏失败单独封装为自定义事件放入游戏gamemode中,设置布尔值(是否失败?)来解决失败后敌人继续生成的问题

最后一波敌人生成后,游戏失败时胜利界面也会出现的问题解决方法:
将gamemode中的(游戏失败?)变量调用,一旦游戏失败就不再检测

死亡界面:做好后添加到终点蓝图中(当前已放到游戏模式中了)

16.怪物血条
(1)创建怪物血条UI
做完后发现并不是那么美观,就去掉了
17.场景美化(自制)
(1)通过素材一点点装饰成自己想要的样子:

待实现功能
1.可以制造不同的塔,每种塔伤害不同,而不是只有一种可以升到五级的塔(未完成)
2.玩家可以切换视角到塔台上,体验不一样的视觉感受
3.优化升级UI界面,怪物,人物血条(就是搞好看点)(怪物血条暂定,不是很好看)
4.优化伤害计算,不同类型,不同等级的塔应该有不同的伤害,速度等(完成)
5.优化子弹和特效,同一个塔可以暂时用一个子弹,但是不同塔必须有不同的子弹特效,功能什么的,就是不能太单一,避免无趣(完成,但是没有多种塔)
6.四周场景优化,地图太空,塔台播放动画,音效(完成)
7.是否有几个关卡,每个关卡出现新的怪物?(暂不完成)
8.是否每一个关卡可以制作新的塔台(如第一关只有一种塔,第二关增加一种…?(暂不完成)
9.是否添加可摧毁障碍物和可标记优先进攻敌人和障碍物?(暂不完成)
10.各种音效的添加,塔攻击,升级,出售,怪物死亡等等(会很吵,暂定)
11.剩余敌人数量和波数提示
12.游戏背景音乐(完成)如何实现背景音乐循环:

13.起点和终点建筑(暂定)
14.开场动画(完成)
杨一鸣塔防教程学习完毕,希望能对大家有一些帮助

