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

#include <WeaponProjectile.h>

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

Public 멤버 함수

 AWeaponProjectile ()
 
virtual void OnCollided (const AActor *HitTarget, const FHitResult &Hit) override
 
virtual UInteractionChannelInteract (AActor *Caller) override
 
FORCEINLINE bool IsWeaponSpawned ()
 
FORCEINLINE ATargetableWeaponGetSpawnedTargetableWeapon ()
 
- ABoxShapeProjectile(으)로부터 상속된 Public 멤버 함수
 ABoxShapeProjectile ()
 
- ADamagedProjectile(으)로부터 상속된 Public 멤버 함수
void InitializeCombatHitPayload (FCombatHitPayload &&InCombatHitPayload)
 
void ApplyCombatHitPayloadToActors (const TArray< AActor * > &TargetActors, const FVector &ImpactOrigin) const
 
- AProjectileBase(으)로부터 상속된 Public 멤버 함수
 AProjectileBase ()
 
virtual void ForceEarlyFinish (const AActor *Terminator, const EProjectileFinishReason FinishReason)
 
virtual void OnLaunched (AActor *LauncherOwner, const FVector &InStart, const FVector &InDirectionOrTarget)
 
bool OverridePendingLaunchPath (const FVector &InStart, const FVector &InDirectionOrTarget)
 
void SetMeshWorldRotation (const FRotator &WorldRotation)
 
virtual void OnFinished (const FVector TerminatedPosition, const AActor *Terminator, EProjectileFinishReason FinishReason)
 
virtual void OnInFlight (const float DeltaTime)
 
virtual void Tick (float DeltaSeconds) override
 
FORCEINLINE EProjectileState GetProjectileState () const
 
FORCEINLINE float GetElapsedTimeSinceLaunch () const
 
FORCEINLINE float GetFinishTime () const
 
FORCEINLINE UProjectilePilotComponent * GetProjectilePilotComponent () const
 
FORCEINLINE AActor * GetShootOwner () const
 
FORCEINLINE bool IsLaunched () const
 
FORCEINLINE bool ShootOwnerIsValid () const
 
- IObjectPoolingInterface(으)로부터 상속된 Public 멤버 함수
void OnSpawnFromPool ()
 
void OnReturnToPool ()
 

Protected 멤버 함수

virtual void OnSpawnFromPool_Implementation () override
 
virtual void OnReturnToPool_Implementation () override
 
- ADamagedProjectile(으)로부터 상속된 Protected 멤버 함수
FORCEINLINE AActor * GetCombatHitSourceActor () const
 
- AProjectileBase(으)로부터 상속된 Protected 멤버 함수
virtual void BeginPlay () override
 
void ApplyPawnCollisionResponse () const
 
virtual FTransform GetCollisionParticleTransform (const AActor *OtherActor, const FHitResult &Hit) const
 
- IInteractableInterface(으)로부터 상속된 Protected 멤버 함수
virtual void OnBeginInteraction (const AActor *Caller)
 
virtual void OnEndInteraction (const AActor *Caller)
 

Protected 속성

FVector TargetableWeaponSpawnRotation = FVector::ZeroVector
 
TSubclassOf< ATargetableWeaponTargetableWeaponClassToSpawn
 
- ABoxShapeProjectile(으)로부터 상속된 Protected 속성
TObjectPtr< UBoxComponent > BoxComponent
 
- AProjectileBase(으)로부터 상속된 Protected 속성
float DeactivationDelay = 0.0f
 
TObjectPtr< ULevelSequence > DeactivationSequencer
 
TObjectPtr< UProjectilePilotComponent > ProjectilePilotComponent
 
TObjectPtr< UStaticMeshComponent > MeshComponent
 
EProjectileMeshRotationMode MeshRotationMode = EProjectileMeshRotationMode::FaceVelocity
 
FRotator MeshRotationRate = FRotator::ZeroRotator
 
bool bCollideWithPawn = false
 
TObjectPtr< AActor > ShootOwner
 

Private 속성

TObjectPtr< ATargetableWeaponSpawnedTargetableWeapon
 

추가로 상속된 멤버들

- AProjectileBase(으)로부터 상속된 Public 속성
EProjectileDeactivationOption DeactivationOption = EProjectileDeactivationOption::Immediate
 
FProjectileLaunchedDelegate OnProjectileLaunchedDelegate
 
FProjectileFinishedDelegate OnProjectileFinishedDelegate
 
FProjectileCollidedDelegate OnProjectileCollidedDelegate
 
FProjectileDeactivatedDelegate OnProjectileDeactivatedDelegate
 

생성자 & 소멸자 문서화

◆ AWeaponProjectile()

AWeaponProjectile::AWeaponProjectile ( )
15{
16 BoxComponent->SetCollisionProfileName(CPROFILE_CKPROJECTILE);
17 BoxComponent->SetGenerateOverlapEvents(false);
18 BoxComponent->SetNotifyRigidBodyCollision(true);
19
20 bCollideWithPawn = true;
22}
#define CPROFILE_CKPROJECTILE
Definition CK_Collision.h:13
TObjectPtr< UBoxComponent > BoxComponent
Definition DefaultProjectiles.h:68
void ApplyPawnCollisionResponse() const
Definition ProjectileBase.cpp:100
bool bCollideWithPawn
Definition ProjectileBase.h:209
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ GetSpawnedTargetableWeapon()

FORCEINLINE ATargetableWeapon * AWeaponProjectile::GetSpawnedTargetableWeapon ( )
inline
37 {
39 }
TObjectPtr< ATargetableWeapon > SpawnedTargetableWeapon
Definition WeaponProjectile.h:54
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Interact()

UInteractionChannel * AWeaponProjectile::Interact ( AActor *  Caller)
overridevirtual

IInteractableInterface(으)로부터 재구현되었습니다.

107{
108 if (Caller == nullptr)
109 {
110 return nullptr;
111 }
112
113 ATargetableWeapon* TargetableWeapon = SpawnedTargetableWeapon;
114
115 if (TargetableWeapon == nullptr)
116 {
117 return nullptr;
118 }
119
120 UInteractionChannel* InteractionChannel = TargetableWeapon->Interact(Caller);
121
123 {
125 }
126
127 return InteractionChannel;
128}
virtual UInteractionChannel * Interact(AActor *Caller) override
Definition InteractableActor.cpp:43
FORCEINLINE EProjectileState GetProjectileState() const
Definition ProjectileBase.h:100
virtual void ForceEarlyFinish(const AActor *Terminator, const EProjectileFinishReason FinishReason)
Definition ProjectileBase.cpp:181
Definition TargetableWeapon.h:20
Definition InteractionChannel.h:21
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ IsWeaponSpawned()

FORCEINLINE bool AWeaponProjectile::IsWeaponSpawned ( )
inline
31 {
32 return GetSpawnedTargetableWeapon() != nullptr;
33 }
FORCEINLINE ATargetableWeapon * GetSpawnedTargetableWeapon()
Definition WeaponProjectile.h:36

◆ OnCollided()

void AWeaponProjectile::OnCollided ( const AActor *  HitTarget,
const FHitResult &  Hit 
)
overridevirtual

AProjectileBase(으)로부터 재구현되었습니다.

52{
53 Super::OnCollided(HitTarget, Hit);
54
55 LOG_INFO(LogCK, "무기 충돌!");
56 BoxComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision);
57
58 if (UProjectilePilotComponent* Pilot = GetProjectilePilotComponent())
59 {
60 Pilot->Stop();
61 }
62 else
63 {
64 LOG_ERROR(LogCK, "%s를 가져올 수 없습니다. ", NAMEOF(UProjectilePilotComponent));
65 return;
66 }
67
68 if (TargetableWeaponClassToSpawn == nullptr)
69 {
70 return;
71 }
72
73 UWorld* World = GetWorld();
74
75 if (World == nullptr)
76 {
77 return;
78 }
79
80 UStageManagementSubsystem* StageSubsystem = World->GetSubsystem<UStageManagementSubsystem>();
81
82 if (StageSubsystem == nullptr)
83 {
84 LOG_ERROR(LogCK, "%s를 가져올 수 없습니다.", NAMEOF(UStageManagementSubsystem));
85 return;
86 }
87
89
90 if (SpawnSystem == nullptr)
91 {
92 LOG_ERROR(LogCK, "%s를 가져올 수 없습니다.", NAMEOF(UInteractableSpawnSystemComponent));
93 return;
94 }
95
96 AActor* SpawnedActor = SpawnSystem->SpawnInteractableActor(TargetableWeaponClassToSpawn, Hit.ImpactPoint, TargetableWeaponSpawnRotation.Rotation());
97 SpawnedTargetableWeapon = Cast<ATargetableWeapon>(SpawnedActor);
98
99 if (SpawnedTargetableWeapon == nullptr)
100 {
101 LOG_ERROR(LogCK, "충돌 위치에 TargetableWeapon을 생성하지 못했습니다.");
102 }
103}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:38
#define NAMEOF(Type)
Definition CK_UE.h:30
FORCEINLINE UProjectilePilotComponent * GetProjectilePilotComponent() const
Definition ProjectileBase.h:118
TSubclassOf< ATargetableWeapon > TargetableWeaponClassToSpawn
Definition WeaponProjectile.h:50
FVector TargetableWeaponSpawnRotation
Definition WeaponProjectile.h:47
Definition InteractableSpawnSystemComponent.h:18
AActor * SpawnInteractableActor(TSubclassOf< AActor > InteractableClass, const FVector &Location, const FRotator &Rotation)
Definition InteractableSpawnSystemComponent.cpp:74
Definition StageManagementSubsystem.h:147
TSpawnSystem * GetOrCreateSpawnSystem()
Definition StageManagementSubsystem.h:282
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnReturnToPool_Implementation()

void AWeaponProjectile::OnReturnToPool_Implementation ( )
overrideprotectedvirtual

ADamagedProjectile(으)로부터 재구현되었습니다.

41{
42 Super::OnReturnToPool_Implementation();
43
45 {
47 }
48}

◆ OnSpawnFromPool_Implementation()

void AWeaponProjectile::OnSpawnFromPool_Implementation ( )
overrideprotectedvirtual

ADamagedProjectile(으)로부터 재구현되었습니다.

26{
27 Super::OnSpawnFromPool_Implementation();
28
29 BoxComponent->SetCollisionProfileName(CPROFILE_CKPROJECTILE);
30 BoxComponent->SetCollisionEnabled(ECollisionEnabled::QueryOnly);
31
32 // 프로파일 재설정으로 응답이 초기화되므로 옵션을 다시 적용.
34
35 // 풀 재사용 시 이전 발사에서 스폰한 무기 포인터가 남아 잘못된 타겟팅을 유발하지 않도록 초기화.
37}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ SpawnedTargetableWeapon

TObjectPtr<ATargetableWeapon> AWeaponProjectile::SpawnedTargetableWeapon
private

◆ TargetableWeaponClassToSpawn

TSubclassOf<ATargetableWeapon> AWeaponProjectile::TargetableWeaponClassToSpawn
protected

◆ TargetableWeaponSpawnRotation

FVector AWeaponProjectile::TargetableWeaponSpawnRotation = FVector::ZeroVector
protected

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