FTransform UAbilitySystemBlueprintLibrary::GetTargetDataOrigin(const FGameplayAbilityTargetDataHandle& TargetData, int32 Index) { if (TargetData.Data.IsValidIndex(Index) == false) { return FTransform::Identity; } FGameplayAbilityTargetData* Data = TargetData.Data[Index].Get(); if (Data) { if (Data->HasOrigin()) { return Data->GetOrigin(); } if (Data->HasHitResult()) { const FHitResult* HitResultPtr = Data->GetHitResult(); FTransform ReturnTransform; ReturnTransform.SetLocation(HitResultPtr->TraceStart); ReturnTransform.SetRotation((HitResultPtr->Location - HitResultPtr->TraceStart).GetSafeNormal().Rotation().Quaternion()); return ReturnTransform; } } return FTransform::Identity; }
bool UAbilitySystemBlueprintLibrary::TargetDataHasOrigin(FGameplayAbilityTargetDataHandle TargetData, int32 Index) { FGameplayAbilityTargetData* Data = TargetData.Data[Index].Get(); if (Data) { return (Data->HasHitResult() || Data->HasOrigin()); } return false; }
bool UAbilitySystemBlueprintLibrary::TargetDataHasEndPoint(FGameplayAbilityTargetDataHandle TargetData, int32 Index) { if (TargetData.Data.IsValidIndex(Index)) { FGameplayAbilityTargetData* Data = TargetData.Data[Index].Get(); if (Data) { return (Data->HasHitResult() || Data->HasEndPoint()); } } return false; }
bool UAbilitySystemBlueprintLibrary::TargetDataHasOrigin(const FGameplayAbilityTargetDataHandle& TargetData, int32 Index) { if (TargetData.Data.IsValidIndex(Index) == false) { return false; } FGameplayAbilityTargetData* Data = TargetData.Data[Index].Get(); if (Data) { return (Data->HasHitResult() || Data->HasOrigin()); } return false; }