在上一篇(UE4 回合游戏项目 12- 添加敌人受到攻击的动画)的基础上继续完成生成敌人的功能
效果:

步骤:
1.打开battleScenario(战斗场景)

2.创建从类生成AI这个节点

现在我们需要获取到敌人的引用,以及敌人的数量
3.创建一个结构体

命名为敌人类型、敌人数量,类型分别为Pawn的类引用和整数

新建一个变量命名为需要产生的敌人类型数量

变量类型选为敌人类数量类型 ,敌人类型

创建如下节点 :

添加一个变量,名为当前类型的敌人数量,类型为整数

生成敌人后,将当前类型的敌人数量这个变量+1

如果当前生成的敌人数量>=需要生成的敌人数量就打印finish,否则就继续生成敌人,每一次生成敌人后,当前敌人数量这个变量+1

如果生成的多个敌人类型不一致,那么就需要这个敌人数量类型为数组类型了

新增加一个变量为当前生成的类型数量(可以理解为数组的索引)

添加如下节点,获取数组中的第i个元素

第一个类型的敌人生成完毕,开始准备生成下一个类型的敌人,让数组的索引加1
现在生成新类型的敌人的数量应该从0开始计数,因此先归0

点击需要产生的敌人类型数量这个变量,添加三组元素,用来代表三个不同类型的敌人

接下来需要判断当前已经生成的敌人类型的数量是否已经超过我们需要生成的敌人类型的数量,因此需要分支节点,并获取需要产生的敌人类型数量这个数组变量的元素个数(数组元素数量为3),如果当前已经生成的数量>=需要生成的数量,就表示生成完成了。

条件为True打印生成完成,条件为False,继续生成敌人
由于从类生成AI这个节点还需要设置生成的敌人的位置和旋转值,因此现在我们还需要获取它

之前我们已经在战斗场景中设置好敌人和玩家生成的位置,红色箭头表示敌人的位置和旋转,蓝色箭头表示玩家的位置和旋转,因此现在只需获取这些箭头的位置和旋转值

创建如下节点:

将输出值提升为变量

命名为敌人生成位置

将其变量类型改为数组,用来存储所有的敌人位置

用add节点将箭头的transform值存进数组

依次将5个红色箭头的transform存进数组(红色箭头表示敌人)

接下来从敌人生成位置这个数组变量中获取敌人生成的位置

可以看到我需要一个新的索引来记住我们已经从数组中获取到了第几个敌人的位置
新建一个整数类型变量命名为敌人生成位置的索引


然后将拆分的位置和旋转给到从类生成AI
然后每生成一个敌人,就讲敌人生成位置的索引+1

最后将下方标注的线连上,整个创建敌人的环节就通了

发现漏连了一个节点:

全部节点,如下图
由于目前只做了一种类型的敌人,我们就先设置生成3个enemy1
编译保存
将场景中的5个敌人全都删除

运行游戏效果如下:

可以直接通过改变红色箭头,来改变敌人的位置和朝向
