BehaviorDesigner插件的Tactical战术任务包详解

BehaviorDesignerTactical插件详解:

一、Action中的Tactical包是用于执行团队战术任务,其中包括的战术有:攻击,排方阵攻击,包围攻击等,需使用导航组件,Unity3d中的GameObject添加NavMeshAgent组件。

节点截图:

 

 

 

 

因为是团队战术,使用前需要进行一些团队成员的设置:

1.Main Camera上挂载BehaviorSelection脚本,设置攻击队伍的领队,攻击组,敌人组,保护物体。

 

2.攻击成员身上挂载Shootable发射子弹脚本,子弹预制件包里面有。

Attack Distance:攻击距离,Repeat Attack Delay:攻击间隔,Attack Angle:攻击角度。

 

3.敌人身上挂载Health血量脚本,将敌人设置统一标签,这里设置为Player,作为被攻击对象的标记。

 

4.Leader(第一领队)之外的进攻团队成员都添加Follow Orders跟随任务:

Agent2,第二领队,参数Leader设置为Agent1Agent2还需添加一个增援行为树,操作请参照本文第12


 

(Agent 3,4,5)

 

 

 

 

战术任务

(战术任务行为树在Leader身上挂载,如有其他其他成员需要挂载行为树的情况会另行说明):

 

 

1Attack,一起向目标进攻,在Leader身上添加行为树和Attack任务,并且设置行为树Group0Target Tag目标标签设置为:Player(下同)Inspector面板参数配置如下:

 

 

运行结果如下(左到右),一起向红色敌人靠近并攻击:

         

 

  

 

 

2Charge,方阵进攻。先排列方阵,排好方阵之后向敌人进攻。在Leader身上添加行为树和Charge任务,并且设置行为树Group1Inspector面板配置如下,Agent Per Row,方阵每行人数,Separation,每个人之间的间隔距离,Attack Distance开始攻击距离,以leaderd距离目标的长度为准。

 

 

 

 

效果如下:先按设置排列阵形,排列阵形完成之后再向目标前进攻击。

 

 

  

 

3、Marching Fire,行进间攻击。先按设置排列好方阵,之后向目标靠近,当目标进入攻击范围就开始攻击,在攻击的时候继续前进,到达指定距离停止移动,持续攻击。在Leader身上添加行为树和Marching Fire任务,并且设置行为树Group2Inspector面板配置如下:Agent Per Row,方阵每行人数,Separation,每个人之间的间隔距离,Attack Distance为最后停止移动时距离目标的距离,开始攻击距离在之前的Shootable发射子弹脚本里面控制,在开始攻击距离到停止移动这一段路程中,攻击者的状态为边移动边攻击。

 

 

 

 

 

 

效果如下:行进间攻击

 

在到达攻击距离就开始攻击,并保持移动,到达指定距离停止移动,持续攻击。

    

4、Flank,侧翼包夹。将部队分为三份,分别在目标前面,左边,右边进行攻击。在Leader身上添加行为树和Flank任务,并且设置行为树Group3Inspector面板配置如下:Dual Flank,左右两侧包夹,不勾选则单侧包夹;Attack Delay,侧翼攻击延迟时间,侧翼到达攻击位置后,前面的队伍开始攻击,侧翼将按照指定时间延后攻击;Approach Distance,侧翼迂回距离,见效果图解;Separation,队伍之间间隔。

 

 

效果如下:侧翼包夹

 

  

 

 

5、Ambush,伏击。攻击队伍在指定位置等待,当有敌人经过并且在伏击范围内,那么等敌人完全通过之后,将尾随敌人进行攻击。首先,在Enemy Group上添加外部行为树(此外部行为树的作用是以一定速度到达指定目的地),并将Group设置为4.

 

 

 

之后设置敌人要去的目标位置(前往的过程会经过伏击范围圈)和移动速度

 

 

Leader身上添加行为树和Ambush任务,并且设置行为树Group4Inspector面板配置如下:Min Ambush Distance,最小伏击距离。

 

 

效果如下:

如何使攻击队伍躲藏在障碍物后面并不属于此任务的功能范畴

 

     

 

 

6、Shoot and Scoot,攻击一段时间之后移动一段距离再攻击其他目标,打完就走。在Leader身上添加行为树和Shoot and Scoot任务,并且设置行为树Group5Inspector面板配置如下:Time Sationary,攻击时间,之后移动到另一个位置进行攻击;Max Move AngleMin Move Angle最大最小移动角度;Max Attack Radius,Min Attack Radius最大最小移动半径。

 

 

 

 

效果如下:

 

 

攻击时间走完之后,更换位置,直到全部消灭敌人。

   

 

7Leapfrog,分两组进行交替搜索目标。在Leader身上添加行为树和Leapfrog任务,并且设置行为树Group6Inspector面板配置如下:Separation,成员间距;Group Separation,两个队伍之间的距离;Leap Distance,交替时前面组超越后面组的距离。

 

 

 

 

 

效果如下:

分组

   

  

8、Surround,包围攻击。在Leader身上添加行为树和Surround任务,并且设置行为树Group7Inspector面板配置如下:Wait Time,执行包围任务之前的等待时间;Radius,包围圈半径。

 

效果如下:

  

     

 

 

9、Defend,防卫。再防卫对象周围待命,当有敌人靠近被防卫物体一定范围内开始追击敌人,直到消灭敌人或者敌人逃出最远距离范围。

首先在每个敌人身上添加外部行为树并将行为树Group设为8,并设置移动目标点和移动速度使之经过防御范围。

 

 

 

 

Leader身上添加行为树和Defend任务,并且设置行为树Group8Inspector面板配置如下:Defend Object,设置保护对象;Radius,开始保护待命半径;Defend Radius,敌人靠近保护对象即进行防卫的范围半径;Max Distance,最大追击距离,敌人逃出这个距离则返回保护区。

 

 

 

效果如下:

在保护待命半径内待命

 

敌人进入保卫区开始攻击

 

在最大追击距离内进行追击,超出最大距离返回防御

 

10、Hold,防卫歼灭。此任务和防卫任务很相似,唯一的区别就是没有最大防卫距离,在保卫的时候发现了敌人就会一直追击,不管敌人跑多远,直到消灭敌人。

首先在每个敌人身上添加外部行为树并将行为树Group设为9,并设置移动目标点和移动速度使之经过防御范围。

 

 

 

Leader身上添加行为树和Hold任务,并且设置行为树Group9Inspector面板配置如下:Defend Object,设置保护对象;Radius,开始保护待命半径;Defend Radius,敌人靠近保护对象即进行防卫的范围半径。

 

 

 

效果如下:保卫时发现敌人会一直追击直至消灭。

  

 

11、Retreit,撤退,远离敌人到一个安全的距离,撤退时在攻击范围内还是会攻击的。在Leader身上添加行为树和Retreit任务,并且设置行为树Group10Inspector面板配置如下:Safe Distance,撤退的安全距离。

 

 

效果如下:

  

 

 

12、Reinforcements,增援。此战术由几个任务组合而成,主要有:Request Reinforcement,请求增援;Reinforcements Response,响应增援。

首先,在Agent2上添加行为树和Reinforcements Response任务,参数如下:Listen For ReReinforcements,监听发送增援请求的对象,本示例为Agent2能接收Agent1发出的增援信息,收到增援信息后会向Agent1靠近,和Agent1一起攻击敌人。

 

 

Agent1上添加行为树并设置行为树的Group11,此行为树的作用为:在攻击的同时,等待一定时间之后发送增援请求,发送请求之后Agent2身上的Reinforcements Response就会响应增援。参数如下:

设定敌人

 

设置发送请求前的等待时间,可以固定时间,也可以设置随机时间。

 

 

 

 

 

 

 

 

发送请求增援任务

 

 

效果如下:

Agent1在攻击敌人

 

 

在攻击的同时,等待3秒之后发送增援请求,Agent2响应增援,向Agent1靠拢。

  

 

 

后续:

1.MainCamera上的Behavior Selection脚本中,对队伍成员名字有一定的规定,关系到成员出生时候的position设置,若要更改请先阅读脚本代码。

 

2.战术包增援任务需要两个领导者,MainCamera上的Behavior Selection脚本中有些代码和控制Agent2身上的行为树相关,这里Agent2身上添加了一个响应增援任务行为树,行为树Group11,如果删除Behavior Selection脚本会报错。

3.目前MainCamera上的Behavior Selection脚本中,对于成员出生位置共有五个vector3设置,如果需要更换出生位置,可在此处调整。增加成员需要再添加新的出生点,也可以再此处设置,具体细节请阅读代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值