![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Unreal Engine GAS系统
主要讲解Unreal Engine中的Game Ability System。
虎牙维护世界和平
一只爱好交互设计的小闹斧
展开
-
Unreal Engine 4 —— GAS系统学习 (四十八)攻击、伤害与防御数据运算(完)
本节是GAS系统讲解的最后一节。内容是人物Melee招式的攻击、伤害与防御数据的运算。本节是需要第四十八节的连招伤害数据做支撑。首先建立一个C++的GamplayEffectExecutionCalculation类。命名为DamageExecutionCaculation。在进行代码写作之前,现在UAttributeSetBase中增加以下代码,并在CPP文件中自行初始化。 UPROPERTY(EditAnywhere, BlueprintReadWrite, Catego.原创 2020-10-04 12:17:49 · 1013 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (四十七)FireBall技能
这次是来新建一个新的技能,叫做FIreBall。新建一个新的GA蓝图,直接使用Lazer招式的Cost和CoolDown。新建一个ACTOR类,用于招式发射出的弹丸。打开GA,因为我们使用的Lazer的招式为基础进行了修改,这里为了避免去做动画融合,使用了Lazer招式的蒙太奇动画。由于ApplyGamePlayEffectToTarget方法并未暴露给Actor类的蓝图。所以我们需要手动写C++,来将一个GameplayEffect作用在TargetDataHandl...原创 2020-10-03 18:13:33 · 331 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (四十六)Melee连招技能(2)
本节完善Melee连招技能的伤害。新建一个csv文件,内容如下:保存关闭电子表格,将该文件拖入到Melee招式的文件夹中。导入选项如下选择即可。打开GE_Melee_Damage,选择刚创建的Curve Table文件,选择MeleDamage,拖动右边的Preview At可以观察值,该值结果是与之前的浮点相乘。打开GA_Melee 文件新增以下模块与连接,通过连招的标号来触发在Curve Table里相对应的伤害值。效果如下:...原创 2020-10-03 09:46:35 · 511 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (四十五)Melee连招技能(1)
本节主要解决了各项技能球值的恢复以及普招的连招。首先新建一个GE文件,如下设置:再进入主角蓝图,新增该GE:此时人物各个技能球就可以不断增加值了。接下来解决连招问题。将MELEE复制两遍,选择你喜欢的招式动画。并创建一个Notify事件。打开主角蓝图,新建一个函数。再进入MELE招式蓝图。打开动画蓝图,为EndComb增加如下设置连招已成,效果如下:...原创 2020-10-02 09:17:39 · 690 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (四十四)FireBlast技能(4)
本章节为FireBlast招式添加效果伤害(视觉+数据),将这些伤害体现在敌人身上。先建立一个GameplayEffect,命名为GE_Burning,设置如下。在建立一个 GameplayCueNotifyActor。用于创建粒子系统。然后将之前创建好的GE_Burning放在Damge的GE中。此时就已经可以触发效果。现在我们设置一个区域,让敌人进入该区域能够取消身上的BUFF。新建一个ACTOR类。然后再在蓝图中如下设置:全部效果..原创 2020-10-02 09:18:51 · 206 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (四十三)FireBlast技能(3)
本节完善FireBlast技能,主要是粒子系统以及Pull和Push事件。首先来解决粒子系统,选择你喜欢的两个粒子系统即可。调整好时间轴,在蒙太奇中增加 Play Particle Effect.在预览中可以看到效果。打开技能,增加CoolDown处理Push标签的事件。增加反向推力。最后构建伤害,新增GE蓝图,如下设置。效果如下:...原创 2020-10-01 20:26:18 · 165 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (四十二)FireBlast技能(2)
这个新的群体技能FireBlast是从玩家角色的位置发起的,接着上一节继续。本节需要解决的是目标确认(实时确认,不再是手动确认)。所以我们仍然需要用到Wait Target Data模块。既然要用到它,那么我们就新建一个C++文件。头文件内容如下:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#in.原创 2020-10-01 17:46:35 · 272 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (四十一)FireBlast技能(1)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节开始增加一个新的技能,先导入贴图。与之前一样制作好Material Instance。初始化UI与招式。打开招式,添加COST与COOLDOWN。添加一个动画蒙太奇,并设置两个事件通知。动画蓝图融合事件通知打开FireBlast招式。效果如下:...原创 2020-09-30 08:37:08 · 190 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (四十)群体技能GroundBlast(8)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节要为GroundBlast招式发招地点增加一个粒子系统。将ConfirmTargetingAndContinue方法中的代码进行修改,如下: FGameplayAbilityTargetData_LocationInfo* centerlocation = new FGameplayAbilityTargetData_LocationInfo(); centerlocation-原创 2020-09-29 09:02:51 · 283 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十九)群体技能GroundBlast(7)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节继续完善GroundBlast招式。导入招式地上确认范围目标的图片并新建一个Material。并如下设置。打开GATargetActor的C++文件。在头文件中加入以下组件: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "GroundBlast") class UDecalComponent.原创 2020-09-29 09:04:34 · 184 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十八)群体技能GroundBlast(6)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617这一节主要是解决GroundBlast招式的动画蓝图等逻辑问题。首先新建一个动画蒙太奇。找到一个你喜欢的招式动画。这些相关的新建slot或者为动画分段之前有讲过,这里不再赘述。转向主角的蓝图。新设置一个按键,并设定技能取消功能。进入GroundBlast的招式,增加播放蒙太奇动画。并设置伤害属性与技能损耗。效果如下:...原创 2020-09-28 10:31:36 · 194 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十七)群体技能GroundBlast(5)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617上一节中我们技能UI等方面基本设置完成。还记得这个技能是怎么设置的吗?需要用户确认才可以运行。那我们今天就来确认一下。进入项目设置,把鼠标右键设置为新的Action。然后如下连接,打印出在技能打击范围内的敌人名称。进入主角蓝图。新增如下:查看效果:...原创 2020-09-27 12:39:08 · 195 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十六)群体技能GroundBlast(4)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节主要是解决技能图标,显示DEBUG等问题。首先在GATargetActor的C++文件中启用Tick。AGATargetActor::AGATargetActor() { PrimaryActorTick.bCanEverTick = true;}并且更改Radius属性的宏定义: UPROPERTY(EditAnywhere, BlueprintReadWrit原创 2020-09-24 17:44:45 · 189 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十五)群体技能GroundBlast(3)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617这一节我们将技能范围内检测到的敌人数据进行打包发送出去。这里的发送是需要用到代理的:FGameplayAbilityTargetDataHandle类。需要用到的父类属性有两个,一个是StartLocation,即技能起始位置。还有一个是TargetDataReadyDelegate,它是FAbilityTargetData的对象,包含有Broadcast方法,这是我们需要用到的。在原创 2020-09-21 13:59:54 · 242 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十四)群体技能GroundBlast(2)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617上一节中我们完成射线,但还是不够,既然是群体技能,一定有一个打击范围,我们今天来完成打击范围内的敌人统计工作。打开GATargetData的C++文件。在头文件中新建一个方法和一个变量备用。 UFUNCTION(BlueprintCallable, Category = "TargetDataSelected") bool GetLookAtLocation(FVector&am原创 2020-09-20 13:09:01 · 294 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十三)群体技能GroundBlast(1)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617之前完成的技能都是单体技能,今天开始我们进入群体技能的学习。新建一个群体技能,起名为GA_GroundBlast。群体技能,肯定需要搜集一些被该技能击中的信息,比如被击中的是谁,被击中了哪个位置等等,这些信息搜集好了之后会被打包统一管理,这里我们需要用到一个类,它是专门帮我们完成这些信息管理功能的,GameplayAbilityTargetActor类。在C++文件中新建一个该.原创 2020-09-19 10:26:15 · 506 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十二)对受到Lazer技能打击的敌人添加冲击力并修正技能中断
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617首先为技能添加冲击力。这里的逻辑相对简单,就是敌人指向TouchSpot距离的单位向量的5000倍。删除之前的技能Timer然后为第一段蒙太奇动画播放后添加EndAbility。最后在OnEndAbility事件后添加模块。修正部分也就完成了,现在只要技能被打断,就会执行OnEndAbility事件。效果如下:...原创 2020-09-19 10:10:17 · 254 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十一) 为Lazer招式添加伤害与技能计时
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节需要完成的内容有两个,1.是需要为Lazer招式增加伤害,2.是招式释放3秒之后,停止释放招式。先解决第一个问题。我们新建一个GE,命名为GE_Lazer_damage。按如下设置:打开LazerActor。将TouchSpot触碰到的信息进行打包通过SendGameplayToActor模块进行发送,这里需要一个TAG,自己定义就好,我这里是这样写的。...原创 2020-09-18 13:48:34 · 227 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (三十) 为Lazer招式创建LazerActor
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617在之前我们已经解决好了动画蓝图以及Lazer招式(GA和GE)的基础设置 。本节将完善Lazer招式,在释放技能的时候,生成一个LazerActor。打开人物动画蓝图,载入预览Lazer蒙太奇动画找到右手武器骨骼,添加一个Socket,命名为Lazer。添加资源预览,选择我们Lazer。调整好适当的位置即可。接下来打开GA_Lazer 。按照如下添加模块。再打开L原创 2020-09-16 12:12:13 · 165 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十九) 为Lazer招式修改动画蓝图
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节是解决上一节加入了新的Lazer技能之后,动画动作融合的问题。动画蓝图中加入新的Slot和cache。将新的动作送入Layered Blend per Bone进行融合。这里为了方便,还是从root节点开始融合。最后使用上一节用到的bool变量判断姿势融合状态。效果如下:...原创 2020-09-13 13:49:21 · 200 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十八) 创建Lazer招式与GameplayEffect
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617为Lazer招式新建一个GA招式,继承自BP_GameplayAbility,这个类是前文中咱们自定义的GameplayAbility的子类。然后再新建两个GE,一个用作cost,一个用作coolDown,别忘了新建一个蒙太奇动画用作Lazer招式。新建好了之后,我们首先打开cost。按照如下设置。定义好TAG,自己随意就行,注意从属结构。再打开cooldow..原创 2020-09-12 09:14:56 · 374 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十七) 为Lazer创建蓝图
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节是为Lazer创建蓝图,但不是简单的创建蓝图那么简单。首先从骨骼创建一个Anim Composite。创建的文件一会要用到,再从SekeletalMesh文件创建一个动画蓝图,运用刚才创建好的文件按如下连接,我们打算改变骨骼中最末端的骨骼(骨骼名字:end)的世界位置。创建Actor类,按如下添加组件。我们想得到红色方框内的长度(距离)作为这个Mesh的...原创 2020-09-11 09:28:37 · 246 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十六) 制作Lazer技能的材质(后续)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617上一节中我们只是完成了技能材质的一部分,今天完成剩下的部分。我们今天要完成的是下图中红框的部分。也就是通过重写下图中的三个材质完成。先来看03号材质。接下来看02号材质,我们打算将01号材质也设置为02号材质的副本。也就是说我们不需要单独去做01号材质。记得今天所有的材质都要选上这个选项。再来看02号材质。将02号材质内容全部拷贝,进...原创 2020-09-10 08:54:09 · 260 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十五) 制作Lazer技能的材质
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617新的材质和技能加群获取。先将新的技能及相关资源导入到UE中。这就是我们想要达到的激光效果。我们打开beam_mtl材质球,进行修改。按照以下方式进行连线。记得Detail面板中也要进行设置。在Detail面板中,搜索找到Tessellation(镶嵌马赛克),选择Flat Tessellation(简易的)即可。...原创 2020-09-09 09:40:55 · 213 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十四) 完善技能冷却的效果显示
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617在上一节中,我们完成了关于技能信息的打包,以及布置技能的Mat Instance到技能栏。今天我们要解决主角触发技能时候,技能图标的冷却效果,以及冷却时间的显示与隐藏效果。打开我们技能槽的技能UI。创建一个自定义事件,起名UICoolDown,并新建一个float类型变量来接受info的冷却时间,当冷却触发的时候,将技能图标上的冷却时间显示出来。接下来,使用Event..原创 2020-09-08 09:40:18 · 762 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十三) 将技能装备到技能栏
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617将技能装备到技能栏听上去比较简单,但是沿续之前的思路,技能显示的Material Instance是封装到了FGameplayAbilityInfo类中的。所以本节还是稍微有点复杂。为了一次性能够初始化多个技能,我们新建一个方法。以下是在CPP中的实现。void AShinbi::AquireAbilities(TArray<TSubclassOf<UGamepl.原创 2020-09-07 11:29:31 · 400 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十二) 用C++代码将GA下所需的GE数据进行收集与打包
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617当角色的招式过多的时候,会带来一些困扰。一个GA招式,需要至少3个GE的效果。如果这个角色有六个招式,那么它至少需要18个GE的效果。当你对某个GE效果不满意的时候,想去调整,会非常麻烦,也容易混淆。本节通过C++代码建立一个GameplayAbility类,将它下挂的所有我们想获得的GE的数据进行搜集,然后放到一个结构体中,这样再让其他的GA继承自这个自定义的GameplayAbilit.原创 2020-09-06 17:34:35 · 1250 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十一) 为主角添加技能图标
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节为主角的治疗技能添加上图标到插槽中。先准备好技能图标,新建一个Material,按住T加鼠标左键,载入Texture Sample。按照下图进行连接,设置。建立一个UserWidget将新建的UI加入到MAIN_UI中。并在主UI中的Graph,增加以下模块。运行结果如下:...原创 2020-09-05 11:55:05 · 246 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (二十) 为主角添加冲刺技能眩晕
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617这里的释放技能后的眩晕其实要打个引号,只是主角暂时不可控制,并不是真正的眩晕技能或者播放一段眩晕的动画。打开主角C++文件,在头文件上加入以下代码:public: UFUNCTION(BlueprintCallable, Category = "Shinbi | Stun") void hitStun(float Duration);protected: UFUNCTIO.原创 2020-09-04 11:57:21 · 425 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十九) 让敌人承受主角冲刺技能产生的冲击力(只对一个敌人产生一次冲击效果)
在之前的基础之上,本节将进行一些调整。让敌人承受主角冲刺技能产生的冲击力,并只对一个敌人产生一次冲击效果。打开主角蓝图,新建一个敌人类型的数组,当主角没有碰撞过的的敌人,增加到数组中。但是这里有个问题,如果不达到某一条件,删除数组中的内容,那就变成了一个敌人只能被冲击技能打一次。所以我们需要在主角冲击技能播放完成之后,让数组清零。在DASH的蒙太奇动画中添加一个通知事件。打开DASH技能的蒙太奇动画,并添加一个通知事件。打开动画蓝图。清除主角中的敌人的数组内容,...原创 2020-09-03 10:32:27 · 331 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十八) 让敌人承受主角冲刺技能产生的冲击力
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节让敌人承受主角冲刺技能的冲击力。进入主角蓝图,新建一个自定义事件,命名为Push,将主角的运动组件的摩擦力变更为0,然后获得碰撞体overlap事件中敌人的位置,以及自己的位置,通过向量相减,再单位化,作为力施加到敌人运动组件的Add Impulse方法中。然后还原主角运动组件的摩擦力。再回到冲刺技能中,执行Push事件。加入Draw Debug Arro...原创 2020-09-02 10:49:26 · 313 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十七) 让敌人承受主角冲刺技能的伤害
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节会让敌人承受主角冲刺技能的伤害。新建一个GE,命名如下。打开该蓝图,如下设置,你可以根据自己的需求设置数值:打开主角蓝图,如下设置,按照不同情况,不同碰撞体触发不同的碰撞事件:这里要注意,技能发起者是主角,目标是敌人,标签是刚才建立GE伤害的标签,自定义即可。回到冲刺技能的蓝图。让收到冲击技能的敌人承受伤害。本节无图例。...原创 2020-09-01 12:43:36 · 338 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十六) 为主角冲刺技能设置阶段性无碰撞
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617之前我们已经做好了冲刺技能,也关联了冲刺技能的相关数据,但是有一点,我们的冲刺技能会被敌人的碰撞体阻挡,这里加以改进,在冲刺过程中敌人不会做任何阻挡,在冲刺动作完成之后再恢复阻挡。为了达成这一目的,首先要清楚,我们要改的应该是主角人物的最外层碰撞体,且在冲刺技能释放的时候,它的属性才会改变,从而达到“穿过敌人”的效果。我们现在主角的头文件中加入以下代码: UFUN...原创 2020-08-31 09:26:39 · 368 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十五) 为主角添加冲刺技能
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617为主角添加冲刺技能,我们先准备好新的GA与GE蓝图,还有冲刺的蒙太奇动画。根据之前讲解的设置TAG的方法,将TAG设置好,如果对TAG还有不清楚的地方可以翻看之前的文章。并在GA_DASH中按照以下方式进行连接。这里调用了任务的Character Movement Component组件,为其设置的冲击力(Impulse),也改变了在DASH招式调用期间的地面摩擦...原创 2020-08-30 09:46:40 · 459 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十四) 通过GameplayCue为主角添加技能粒子效果
本节为上一节的治疗技能加上视觉效果,主要以粒子效果作为呈现。主要通过GAS系统的GameplayCue文件来完成。GameplayCueNotify_Actor,将一个实例化的ACTOR类对象作为GameplayCue,可以包含了TICK和UPDATE功能。GameplayCueNotify_Static,将一个没有实例化的ACTOR类作为GameplayCue。GameplayCueNotify_HitImpact,用作粒子系统和声音音效等。本次使用GameplayCueNoti.原创 2020-08-29 10:09:59 · 1093 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十三) 为主角添加技能阻碍
为主角添加其他技阻碍意思是当满足某一条件的时候技能不能触发,不满足某一条件时候可以触发。此节的目的是当主角的血量是满的,就不可以加血了,阻碍加血技能的实施。想到达到阻碍技能施展的功能是通过标签(Tag)来实现的。我们想阻碍以下技能的施展:打开该技能的蓝图。找到激活技能阻碍的标签。添加一个标签,自定义就好:也就是说,当技能发现了这个标签的时候,GA_HEAL技能就不会释放。那如何动态增加和删除这个标签是现在要解决的问题,因为我们并不想它一直阻碍技能的释放。在主角的.原创 2020-08-28 12:11:16 · 614 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十二) 为主角添加其他技能球
为主角添加其他技能球的方法与之前添加血量球的方法是一致的。我们这次要新增两个球。一个用作给自身加血的,一个用作技能。首先在AttributeSetBase类中新增四个FGameplayAttributeData类的对象,分别是Mana,MaxMana,Heal,MaxHeal。 //Mana技能量 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Properties From AttributeSetBase") FGamep原创 2020-08-27 09:35:28 · 576 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十一) 为主角增加技能框(添加血量球)
首先我们新建一个文件夹导入素材。这次我们要使用的素材是第一、第二和第四个。分别是气泡、血量球和技能框。先新建一个技能框的UI。在编辑模式中拖入技能框的图片。并按照以下参数进行设置。SIZE的大小就是图片的大小。它是最底层的涂层,ZORDER设置为1。创建一个新材质,准备制作血量球。按照如下方式进行设置和连接。新建一个血量球的UI。按照如下设置。Mat做好之后,为了方便编辑,创建一个该MAT的Instance。打开血量球的蓝图编辑。按照以下方...原创 2020-08-26 14:00:01 · 651 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (十) 为敌人增加简单AI功能
本节是为敌人增加简单的AI功能,并没有涉及UPawnSenseComponent,意思就是不可以用听觉或者视觉发现主角的存在。也不会为主角增加UPawnNoiseEmitterComponent,来制造噪音,只是简单的走向主角并发动攻击。第一步,我们先新建一个行为树和黑板。在行为树中挂载黑板在黑板中新建一个Object类型的变量,其父类选择为Actor。第二步,在主角类中增加一个UBehaviorTree类型的变量,该变量不是给主角用的,因为敌人类继承自主角,所以为了让敌人类原创 2020-08-25 11:26:54 · 1158 阅读 · 0 评论 -
Unreal Engine 4 —— GAS系统学习 (九) 给敌人添加死亡功能
本功能可在蓝图中完成,也可以在C++中完成,本例选择部分在蓝图中完成。首先我们新建一个蒙太奇动画,用于敌人角色死亡时候播放。回到AttributeSetBase中对血量范围进行限制,下限到0即可。PostGameplayEffectExecute方法修改为如下:void UAttributeSetBase::PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data){ if (Data.Eval原创 2020-08-24 11:17:02 · 1908 阅读 · 0 评论