UE4 回合游戏项目 13- 生成敌人
在上一篇(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个敌人全都删除
运行游戏效果如下:
可以直接通过改变红色箭头,来改变敌人的位置和朝向
UE4 回合游戏项目 13- 生成敌人相关推荐
- UE4 回合游戏项目 03- 创建战斗场景
在上一节(UE4 回合游戏项目 02- 创建人物-敌人角色(动画蓝图练习))的基础上创建战斗场景 步骤: 1.新建一个蓝图类 选择Actor 命名为battleScenario(战斗场景) 2.打开b ...
- UE4 回合游戏项目 14- 添加敌人攻击
在上一篇基础上(UE4 回合游戏项目 13- 生成敌人)继续完成添加敌人攻击的功能 效果: 步骤: 我们需要在gameMode1中的开启新一次攻击前,添加敌人攻击的功能 首先需要获得敌人的索引 1.在 ...
- UE4 回合游戏项目 21- 添加多种类型的敌人
在上一节(UE4 回合游戏项目 20- 添加人物被攻击的动画)基础上添加了多种类型的敌人 效果: 步骤: 1.由于多种类型的敌人使用的是同一个骨架网格体,所以直接在"enemy1" ...
- UE4 回合游戏项目 15- 生成玩家、控制玩家
在上一节(UE4 回合游戏项目 14- 添加敌人攻击)基础上继续完成生成玩家.控制玩家的功能 现在战斗地点基本完成,于是就需要制作玩家从外部走到指定地点,从而触发战斗.本节先完成 生成玩家.控制玩家的 ...
- UE4 回合游戏项目 11- 添加人物攻击动画
在上一节(UE4 回合游戏项目 10- 添加怪物死亡动画)基础上添加人物攻击动画 效果: 步骤: 打开gameMode1准备在如下标注区域添加人物攻击动画的相关节点 1.添加一个蓝图接口 命名为轮到攻 ...
- UE4 回合游戏项目 09- 添加人物属性值
在上一节 (UE4 回合游戏项目 08- 攻击界面UI的点击事件)的基础上添加人物属性值 步骤: 1.添加一个结构,可以用来存放一些东西,个人理解为类似于C++的结构体 命名为属性 2.双击打开属性, ...
- UE4 回合游戏项目 08- 攻击界面UI的点击事件
在上一篇(UE4 回合游戏项目 07- 创建攻击界面UI)的基础上继续完成按钮的点击事件触发 ,实现只有当点击按钮后才能开始战斗,战斗计数后再显示UI的功能. 效果: 步骤: 1.为了知道玩家点击的是 ...
- UE4 回合游戏项目 10- 添加怪物死亡动画
在上一节(UE4 回合游戏项目 09- 添加人物属性值)基础上添加怪物死亡动画 效果: 步骤: 1.打开gameMode1,在事件图表中的延迟节点后新增一个应用伤害节点 Damaged Actor表示 ...
- UE4 回合游戏项目 20- 添加人物被攻击的动画
在上一节(UE4 回合游戏项目 19- 添加血量UI)基础上继续添加人物被攻击时播放被攻击动画的功能. 效果:(当玩家被攻击时,播放相应的受到伤害的动画) 步骤: 1.打开"1lantu&q ...
最新文章
- 文字超过省略_从楚篆到楚玺的文字结构
- 【ACM】DFS 全排列 回溯
- 拼接字符串的两种方式
- Comet OJ(Contest #8)-D菜菜种菜【树状数组,指针】
- 算法偏见是什么_算法可能会使任何人(包括您)有偏见
- python数字形式转换_在Python中将字母转换为数字
- efcore调用函数_EF Core 3.1 执行sql语句的几种方法
- linux系统vi光标移动字符,Linux vim光标移动快捷键
- 通达信公式转python为什么很难_转行数据分析为什么这么难?
- 《网络攻防》第五周作业
- EF里查看/修改实体的当前值、原始值和数据库值
- Vim 的几个彩蛋。。
- Windows下命令模式安装mysql
- 【React Native 安卓开发】----(Flexbox布局)【第二篇】
- Atiitt 自我学习法流程 1.预先阶段 1.1.目标搜索 资料搜索 1.2. 1.3.通过关联关键词 抽象 等领域 拓展拓宽体系树 1.4. 2.分析整理阶段 2.1.找出重点 压缩要学会
- 02 Oracle 批量导出建表语句和数据
- c语言实现费诺编码csdn,香农编码 哈夫曼编码 费诺编码的比较
- HDU, 3579 Hello Kiki
- 给python点颜色青少年学编程_给老师的新年祝福语
- 基于Android平台的ffmpeg编译