28 lines
850 B
C++
28 lines
850 B
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
|
|
#include "AbilitySystem/Abilities/AuraGameplayAbility.h"
|
|
#include "Interaction/CombatInterface.h"
|
|
|
|
|
|
FTransform UAuraGameplayAbility::MakeProjectileSpawnTransform(FGameplayTag SocketTagName, const FVector& TargetLocation, float Pitch) const
|
|
{
|
|
FTransform SpawnTransform;
|
|
|
|
AActor* Avatar = GetAvatarActorFromActorInfo();
|
|
|
|
if (!IsValid(Avatar))
|
|
return SpawnTransform;
|
|
|
|
if (Avatar->Implements<UCombatInterface>())
|
|
SpawnTransform.SetLocation(ICombatInterface::Execute_GetCombatSocketLocation(Avatar, SocketTagName));
|
|
else
|
|
SpawnTransform.SetLocation(Avatar->GetActorLocation());
|
|
|
|
FRotator Rotation = (TargetLocation - SpawnTransform.GetLocation()).Rotation();
|
|
Rotation.Pitch = Pitch;
|
|
SpawnTransform.SetRotation(Rotation.Quaternion());
|
|
|
|
return SpawnTransform;
|
|
}
|