在上一篇(UE4 回合游戏项目 22- 控制新角色)基础上继续增加两个角色进入战斗的逻辑
效果:

步骤:
1. 打开“gameMode1”,新增一个变量命名为“正在控制的所有玩家”,变量类型为“roleCategory”的数组


2.打开关卡蓝图,将生成的Pawn类型角色转换为“roleCategory”,再添加到“正在控制的所有玩家”这个数组中

将Pawn Class选项改为“player1”
3.在视口中复制一份空Actor作为“player2”的生成位置

4.回到关卡蓝图中
在生成“player2”后,将生成的角色也加入到数组中

此时播放游戏可以看到生成了两个角色:

接下来编辑进入战斗的逻辑
5.打开“碰撞进入战斗”这个蓝图。由于现在生成了两个角色,因此只销毁当前玩家控制的角色时不行的,因此,首先删除销毁Actor节点。

6.打开“battleScenario”蓝图,选中“进入战斗”节点,删除“碰撞玩家”的输入

将“碰撞的位置”这个变量改为数组

进入战斗前清空该数组
再创建一个变量“需要生成的角色类”,变量类型为“roleCategory”的类引用

进入战斗前清空该数组

遍历“正在控制的所有玩家”这个数组
将玩家的碰撞位置和生成的类分别加到“碰撞的位置”和“需要生成的角色类”数组中
进入战斗前销毁角色

遍历完成后就继续执行之前生成敌人的逻辑

新建一个变量,名为“生成的玩家数组”,对象类型为“roleCategory”

清空“生成的玩家数组”

遍历生成的角色类

生成角色

生成后的角色加入到“生成的玩家数组”
双击打开“怪物生成”这个合并的图表

7.打开“gameMode1”,添加一个输入

8.回到“battleScenario”蓝图,在变量生成完角色后执行开始战斗的事件


![[附源码]java毕业设计校园网学生成绩查询系统](https://img-blog.csdnimg.cn/94ce0bb0f48d453d90ca573bc1c95d1f.png)

![[论文评析]基于人体姿态识别的立定跳远 动作智能评估系统](https://img-blog.csdnimg.cn/3ed885f5f3f64d0b9940146f5a58a515.png)














