UE4-GASShooter-RocketLauncher-WaitTargetDataUsingActor

本文详细解析了在虚幻4(UE4)游戏开发中,使用Gameplay Ability System(GAS)创建的GASShooter项目中,RocketLauncher的TargetData处理流程。通过讲解如何在客户端生成TargetData并复制到服务器,阐述了客户端与服务器之间的逻辑差异,并介绍了关键节点如WaitTargetDataWithReusableActor和ShouldProduceTargetDataOnServer的用法,以及如何自定义TargetActor进行射线检测和Sphere检测。文章还探讨了UsePersistentHitResults特性,允许持久保存HitResult,实现多目标选择功能。
摘要由CSDN通过智能技术生成

Mark一下项目理解与应用

项目:虚幻4-GAS-GASShooter

描述:可复用TargetData部分。https://github.com/tranek/GASDocumentation#concepts-targeting-data。本文截图里的类名与链接里的工程的类名不一样,但函数名相同(因为截图是我自己理解后按需求建的工程),找同名函数理解即可。

具体蓝图:GA_RocketLauncherPrimaryInstant

注:本文只描述代码执行过程。Client 和Server 之间的逻辑执行区别。

 

Start:

1.首先从GA_RocketLauncherPrimary中接受输入Custom事件(鼠标左键发射)触发Ability逻辑,然后执行到Batch RPC Try Activate Ability,这个节点用于把ActivateAbility、SendTargetData、EndAbility这三个同一帧处理的RPC批处理。

不过这不是这次重点,只需知道节点内部逻辑作用是:触发GA_RocketLauncherPrimaryInstant的  就行了。

 

2.到了GA_RocketLauncherPrimaryInstant里,Event Activate Ability,开始执行,如下图。

这里插个小段。

先说在CheckandSetCacheables这个宏,里面有一个生成TargetActor的过程。

这时候仅仅生成一个未配置的TargetActor(ATASGATA_LineTrace)。这个TargetActor的作用是:后续根据检测逻辑(射线检测)生成TargetData。

这里仅仅生成了一个Actor未做任何配置。之后配置的时候需要PerformTrace和MakeTargetData(下文写)

 

3.然后出宏,回到主逻辑。这里其实是两条路,第一个红圈里的是用于服务器处理的,第二个红圈里是用于客户端处理的。(这部分在本文后面写到客户端Replicate TargetData到服务器的时候还会写清楚ServerWaitForClientTargetData内部逻辑)

服务器:ServerWaitForClientTargetData这个AbilityTask:等待从客户端发送过来的TargetData,如果接收到,就会BroadCast一个ValidData触发HandleTargetData。

客户端:仅仅激活ServerWaitForClientTargetData,什么都不做处理,然后就执行后面的FireRocket事件。在单机状态下,客户端就是Server,ServerWaitForClientTargetData等于没用。

 

3.Custom Event:FireRocket。(这里直接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值