Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UAnimNotify_SpawnProjectile 클래스 참조

#include <AnimNotify_SpawnProjectile.h>

UAnimNotify_SpawnProjectile에 대한 상속 다이어그램 :
Inheritance graph
UAnimNotify_SpawnProjectile에 대한 협력 다이어그램:
Collaboration graph

Public 속성

FGameplayTag TriggerTag
 
TSubclassOf< AProjectileBaseProjectileClass
 
FVector SpawnOffset = FVector::ZeroVector
 
EProjectileDamageTargetType DamageTargetType = EProjectileDamageTargetType::None
 

Protected 멤버 함수

virtual void Notify (USkeletalMeshComponent *MeshComp, UAnimSequenceBase *Animation, const FAnimNotifyEventReference &EventReference) override
 
virtual FString GetNotifyName_Implementation () const override
 
virtual FVector GetProjectileLaunchDirection (const AActor *OwnerActor)
 

멤버 함수 문서화

◆ GetNotifyName_Implementation()

FString UAnimNotify_SpawnProjectile::GetNotifyName_Implementation ( ) const
overrideprotectedvirtual
51{
52 return TEXT("Spawn Projectile");
53}

◆ GetProjectileLaunchDirection()

FVector UAnimNotify_SpawnProjectile::GetProjectileLaunchDirection ( const AActor *  OwnerActor)
protectedvirtual
57{
58 switch (DamageTargetType)
59 {
61 {
62 if (UPlayerManagementSubsystem* const PlayerManagementSubsystem = UCK_BPFunctionLibrary::GetPlayerManagementSubsystem(OwnerActor->GetWorld()))
63 {
64 const AMainPlayerCharacter* PlayerCharacter = PlayerManagementSubsystem->GetPlayer();
65 const FVector Result = PlayerCharacter ? OwnerActor->GetActorLocation() - PlayerCharacter->GetActorLocation() : FVector::ZeroVector;
66 return Result;
67 }
68 break;
69 }
70
72 {
73 if (const AMainPlayerCharacter* Player = Cast<AMainPlayerCharacter>(OwnerActor))
74 {
75 const UCameraTargetingComponent* TargetingComp = Player->GetPlayerTargetingComponent();
76 ITargetableInterface* TargetActor = TargetingComp ? TargetingComp->GetTargetable() : nullptr;
77 return TargetActor ? TargetActor->GetTargetedActorLocation() - Player->GetActorLocation() : Player->GetActorForwardVector();
78 }
79 break;
80 }
81
83 {
84 return FVector::ZeroVector;
85 }
86
87 default:
88 {
89 LOG_ERROR(LogCK, "Invalid DamageTargetType: %d", DamageTargetType);
90 return FVector::ZeroVector;
91 }
92 }
93
94 return
95 FVector::ZeroVector;
96}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
Definition MainPlayerCharacter.h:39
UCameraTargetingComponent * GetPlayerTargetingComponent() const
Definition MainPlayerCharacter.cpp:937
Definition TargetableInterface.h:20
virtual FVector GetTargetedActorLocation()
Definition TargetableInterface.cpp:95
EProjectileDamageTargetType DamageTargetType
Definition AnimNotify_SpawnProjectile.h:45
static UPlayerManagementSubsystem * GetPlayerManagementSubsystem(const UObject *WorldContextObject)
Definition CK_BPFunctionLibrary.cpp:86
Definition PlayerManagementSubsystem.h:42
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Notify()

void UAnimNotify_SpawnProjectile::Notify ( USkeletalMeshComponent *  MeshComp,
UAnimSequenceBase *  Animation,
const FAnimNotifyEventReference &  EventReference 
)
overrideprotectedvirtual
17{
18 Super::Notify(MeshComp, Animation, EventReference);
19
20 if (MeshComp == nullptr || MeshComp->GetWorld()->IsGameWorld() == false)
21 {
22 return;
23 }
24
25 const AActor* OwnerActor = MeshComp->GetOwner();
26 check(OwnerActor);
27
28 TArray<UProjectileLauncherComponent*> ProjectileLauncherComponents;
29 OwnerActor->GetComponents<UProjectileLauncherComponent>(ProjectileLauncherComponents);
30
31 if (ProjectileLauncherComponents.IsEmpty())
32 {
33 LOG_ERROR(LogCK, "%s가 비어있습니다. ", NAMEOF_VAR(ProjectileLauncherComponents))
34 return;
35 }
36
37 AProjectileBase* SpawnedProjectile = ProjectileLauncherComponents[0]->Launch
38 (
40 OwnerActor->GetActorLocation() + SpawnOffset,
42 );
43
44 FGameplayEventData PayloadData;
45 PayloadData.Target = SpawnedProjectile;
46 UAbilitySystemBlueprintLibrary::SendGameplayEventToActor(MeshComp->GetOwner(), TriggerTag, PayloadData);
47}
#define NAMEOF_VAR(Expr)
Definition CK_UE.h:34
Definition ProjectileBase.h:81
FGameplayTag TriggerTag
Definition AnimNotify_SpawnProjectile.h:36
FVector SpawnOffset
Definition AnimNotify_SpawnProjectile.h:42
virtual FVector GetProjectileLaunchDirection(const AActor *OwnerActor)
Definition AnimNotify_SpawnProjectile.cpp:56
TSubclassOf< AProjectileBase > ProjectileClass
Definition AnimNotify_SpawnProjectile.h:39
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ DamageTargetType

EProjectileDamageTargetType UAnimNotify_SpawnProjectile::DamageTargetType = EProjectileDamageTargetType::None

◆ ProjectileClass

TSubclassOf<AProjectileBase> UAnimNotify_SpawnProjectile::ProjectileClass

◆ SpawnOffset

FVector UAnimNotify_SpawnProjectile::SpawnOffset = FVector::ZeroVector

◆ TriggerTag

FGameplayTag UAnimNotify_SpawnProjectile::TriggerTag

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: