【UE4 塔防游戏系列】04-敌人沿着指定路线移动

目录

效果

步骤

一、绘制道路

二、创建出生点和路径点 

三、生成敌人

四、敌人沿着路径点移动


效果 

步骤

一、绘制道路

首先绘制一条道路,后面希望敌人会沿着这条绘制道路行走。

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第1张图片

二、创建出生点和路径点 

2.1 新建父类为Actor的蓝图,作为敌人出生点,命名为“BP_EnemyBirthPlace”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第2张图片

 将其放置在视口中玩家出生的位置

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第3张图片

2.2 再创建一个父类为Actor的蓝图,作为敌人在道路上移动的路径点,命名为“BP_EnemyPathPoint”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第4张图片

 在视口中将“BP_EnemyPathPoint”放置在每一个道路的拐点处

2.3 有了路径点之后,我们就需要让每一个路径点知道它的下一个路径点是谁

打开“BP_EnemyPathPoint”,添加一个变量“NextPathPointActor”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第5张图片

 变量类型为其自身(“BP_EnemyPathPoint”)的对象引用

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第6张图片

 勾选可编辑实例和生成时公开

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第7张图片

2.4 在大纲中选中场景中的第一个路径点,然后去设置NextPathPointActor,即选择下一个路径点是哪个Actor

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第8张图片

 这里设置第一个路径点的下一个路径点是“BP_EnemyPathPoint2”,然后以此类推,设置每一个路径点的下一个路径点的是哪一个Actor。

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第9张图片

2.5 我们也要告诉出生点那个Actor,敌人从它那里生成后走的下一个路径点是哪个Actor,方法和之前同理。打开“BP_EnemyBirthPlace”,新建一个变量命名为“FirstPathPointActor”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第10张图片

变量类型也是“BP_EnemyPathPoint”的对象引用。

 【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第11张图片

 然后在视口中选中出生点,设置“FirstPathPointActor”为第一个路径点的那个Actor

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第12张图片

三、生成敌人

打开“TaFangGameMode”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第13张图片

首先在事件图表中获取到敌人出生点的那个Actor

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第14张图片

 将获取到的actor作为变量,变量命名为“EnemyBirthPlaceActor”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第15张图片

生成具有AIController的Enemy1

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第16张图片

新建一个整型变量“NumOfSpawnEnemy1”,用于记录当前已经生成Enemy1的数量

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第17张图片

然后每生成一次就将变量“NumOfSpawnEnemy1”加1

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第18张图片

 判断敌人生成的数量是否>20,如果没有到达20个就继续生成敌人。

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第19张图片

 可以看到此时已经能够在出生点生成敌人

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第20张图片

四、敌人沿着路径点移动

4.1 打开“TotalEnemyCategory”(所有敌人的父类)

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第21张图片

 新建一个变量命名为“BirthPlace”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第22张图片

 变量类型为“BP_EnemyBirthPlace”的对象引用

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第23张图片

4.2 打开“TaFangGameMode”,添加如下节点。将获取到的出生点的Actor传递给敌人总类中的变量“BirthPlace”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第24张图片

4.3 回到蓝图“TotalEnemyCategory”

此时变量“BirthPlace”已经被赋予了具体的对象(即“BP_EnemyBirthPlace”)

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第25张图片

那么我们就可以获得其中的“FirstPathPointActor”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第26张图片

 然后就可以让敌人移动到“FirstPathPointActor”所处的位置

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第27张图片

那么如何让敌人不断的移动到下一个路径点的位置呢?我们可以新建一个变量,命名为“NextPathPoint”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第28张图片

变量类型为“BP_EnemyPathPoint”的对象引用

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第29张图片

当我们获取到第一个路径点Actor的时候我们就可以将其设置为“NextPathPoint”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第30张图片

 当敌人移动完成后,我们又可以获取到“BP_EnemyPathPoint”中的变量“NextPathPointActor”,并把该变量赋予“NextPathPoint”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第31张图片

 将变量“NextPathPoint”转换为有效的Get,以此来判断是否能够有效的获取到下一个路径点Actor

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第32张图片

 如果能有效获取,就不断获取下一个路径点Actor,然后让敌人走到这个Actor所处的位置【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第33张图片

 4.4 为了让敌人动起来,我们还需向视口中增加“导航网格体边界体积”,从而让AI知道哪些地方可以走

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第34张图片

 扩大“导航网格体边界体积”覆盖区域

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第35张图片

 按P键显示AI可以被导航的真实区域

 【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第36张图片

 此时如果直接运行游戏的话,可以看到报如下错误

 这因为在“TaFangGameMode”中,还没来得及将获取到“EnemyBirthPlaceActor”传递给蓝图“TotalEnemyCategory”

【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第37张图片

 我们只需在“TotalEnemyCategory”中加一段延迟即可。【UE4 塔防游戏系列】04-敌人沿着指定路线移动_第38张图片

 运行效果如文章开头所示。

你可能感兴趣的:(#,虚幻4,塔防游戏,ue4,游戏)