问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

虚幻四Gameplay Ability System入门(5)-冲刺奔跑和深入Attribute_百度...

发布网友 发布时间:2024-10-23 13:58

我来回答

1个回答

热心网友 时间:2024-11-11 21:26

在深入探讨虚幻四Gameplay Ability System(GAS)的实现细节前,先分享一段小插曲:我在源码中不慎添加了两句注释,竟导致项目编译失败,面临3000+错误。这让我意识到GAS的复杂性和严谨性。在这篇文章中,我们将聚焦于实现角色的冲刺奔跑功能,以及对GAS中属性(Attribute)的深入理解。如有疑问,欢迎在评论区提问或私信交流。


实现冲刺奔跑功能分为以下几个步骤:



点击shift后激活冲刺技能。
激活技能后,添加一个Gameplay Effect(GE),以提升角色的移动速度属性。
在角色的Character.h/cpp中实现一个函数,将移动速度改变的事件绑定到该函数。在该函数中,提高角色Movement Component的移动速度。
当shift键松开时,发送Gameplay Event以终止冲刺能力。

接下来,我们创建MoveSpeed属性。


在AttributeSetBase.h/cpp中添加MoveSpeed属性。此操作已多次执行,假设读者已掌握流程。重要的是了解属性数据结构,查看AttributeSetBase的父类AttributeSet.h。这里展示了属性包含Base Value和Current Value两个浮点值。


Base Value是永久属性的基础值,而Current Value是临时值。例如,加速奔跑功能实际上改变的是Current Value,当效果结束后,Current Value会恢复至默认值。类似地,增益效果会暂时提升角色的生命值或护甲等属性。


与Base Value不同,角色生命值的扣减直接作用于Health属性的Base Value。攻击造成的伤害被视为永久改变,除非有其他影响,否则生命值不会改变。


Base值与Current值的变更方式取决于Gameplay Effect(GE)的Duration Policy。Instant模式改变Base值,Infinite和Has Duration模式改变Current值,因为这些效果有持续时间。当Duration policy包含period时,同样改变Base值,因为Period Duration可视为每个period触发一次的instant。


创建完毕后,给MoveSpeed属性赋予初始值。


实现Sprint技能。创建名为GA_Sprint的游戏能力,作为冲刺技能。创建名为GE_Sprint_SpeedUp的游戏效果,负责提高移动速度。在GE_Sprint_SpeedUp中设置技能效果为永久性,提高MoveSpeed属性2000,同时添加标签Ability.Sprint.SpeedUp。


在GA_Sprint中,向拥有该技能的角色申请一个GE,并等待带有标签Ability.Sprint.EndAbility的Gameplay Event。接收到该事件后,移除带有Ability.Sprint.SpeedUp标签的GE,然后结束能力。


在角色蓝图中,添加能力(Give Ability),绑定输入。当shift松开时,向自己发送带有标签Ability.Sprint.EndSprint的Gameplay Event,作为能力中等待的事件。


实现MoveSpeed属性的改变处理。在CharacterBase.h/cpp中创建一个函数,用于处理移动速度属性值的改变。注意,直接通过GetCharacterMovement()修改移动速度可能导致性能问题。在BeginPlay中将该函数与MoveSpeed的Change Delegate绑定。


处理属性改变的响应。GAS系统提供了接口,在属性值发生改变前进行预处理。重写PreAttributeChange和PostGameplayEffectExecute方法,以设置属性值的范围。例如,确保生命值始终在0到100之间。


通过本文,我们不仅实现了角色的冲刺奔跑功能,还深入探讨了GAS中的属性机制。希望这些知识能帮助你更好地理解和利用GAS系统,以创造更丰富、更细腻的游戏体验。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
苹果6可以解锁id吗??捡的 iphone6现在能解id锁吗 求一篇关于水的调查报告,急!要短点!(有格式) 关于节约用水的调查报告作文1600字 福建库存enidine缓冲器 江西质量enidine缓冲器 乳胶床垫哪个好?2024床垫排名前十的品牌:这3个性价比高,口碑公认! 哪家的橡胶空气弹簧比较好? 床垫哪个品牌好?2024年床垫十大名牌排行榜名单(内含各品牌点评)_百度... tplink192.168.0.2怎么设置密码 招远到济南长途汽车首班车发车时间和票价 我想询问下从招远到济南最早是几点的车,到了济南以后怎么去飞机场,要详... 现代朗动和速腾哪个好 String str = nem String("1"+"2")产生了几个对象? ...买z114从哈尔滨到广州,再买z111从广州到海口,可以不下车吗?_百度知 ... 我的电脑有个文件删不了了!怎么删除?没查出病毒! 总是显示不在该位置... 梦见修房子是什么预兆梦见修房子的寓意 java中String s=new String("abc");创建了几个String对象? 速腾、朗逸、朗动、4cl质量谁好 房产租赁管理系统软件 有没有男女对唱的英文歌?像way back into love一样的。推荐几首... 神农架是哪个地区管 梦见修房子是什么预兆梦见修房子的寓意 事实婚姻与婚姻的关系是怎样的 String str=new String(""a");是两个还是三个对象 ...String str=new String("a") 这个语句创建了几个对象。 梦见修房子是什么预兆梦见修房子的寓意 衡水学院十月一放假能会家吗? 一级建造师合格线是怎么定的 一级建造师各科考多少分能过 电脑中的文件夹删除不了是怎么回事?明明在这个文件夹中却显示的是:该... 神农架是哪个市 神农架行政区划 雪鹰领主男主东伯雪鹰有几个女人-雪鹰领主男主东伯雪鹰结局和谁在一... 邯郸市口腔医院会不会招收打暑假工,没有口腔专业知识的小助手呀?活着后... 27层的25楼与8层的7楼选哪个好 纠结中 在同一个小区里 都是电梯房 都... 求一部网游小说 主角之前在游戏里面是一个天下无敌的人 不知道什么原因... 神华宝日希勒能源有限公司后勤服务公司 雪鹰领主男主东伯雪鹰到底有几个女人 美团夜班文员需要盘点吗 一级建造师各科及格分数是多少 仙女座大星云是一个天体系统,其级别类似于什么?? 台风要来前要必备的食物有什么? 王者荣耀徒弟任务怎么接受 一级建造师合格分数及标准是多少 怎样买入一字涨停股 —字板股票买入技巧有那些? 微信把好友拉黑用视频聊天对方听见吗? 对方把我微信拉黑是不是就听不到我声音了 2020年大学12月末就放寒假了吗-2020年下半年寒假放假时间表
  • 焦点

最新推荐

猜你喜欢

热门推荐