example://FGameplayAbilityTargetData_SingleTargetHit 继承自FGameplayAbilityTargetData
FGameplayAbilityTargetData_SingleTargetHit 是用于表示单一目标命中信息的目标数据结构,常用于游戏技能系统(Gameplay Ability System, GAS)中传递目标信息。
它主要包含以下核心信息:
命中的目标(通常是一个AActor*或FGameplayAbilityActorInfo)
命中位置和法线(FVector类型)
命中的组件(UPrimitiveComponent*)
骨骼名称(针对骨骼网格体的命中点)
碰撞信息(FHitResult)
// 创建SingleTargetHit目标数据
TSharedPtr<FGameplayAbilityTargetData_SingleTargetHit> TargetData = MakeShareable(new FGameplayAbilityTargetData_SingleTargetHit());
// 设置命中信息
TargetData->HitResult = HitResult; // 从碰撞检测获取的FHitResult
TargetData->Target = HitResult.GetActor(); // 设置命中的目标Actor
// 包装成目标数据集合
FGameplayAbilityTargetDataHandle TargetDataHandle;
TargetDataHandle.Add(TargetData);
//目标数据使用
AbilityComponent->ServerSetReplicatedTargetData(GetAbilitySpecHandle(), GetActivationPredictionKey(), DataHandle, FGameplayTag(),AbilitySystemComponent->ScopedPredictionKey);
AbilitySystemComponent->ScopedPredictionKey//是网络预测的密匙