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

#include <ExplosiveProjectile.h>

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

Public 멤버 함수

 AExplosiveProjectile ()
 
- ASphereShapeProjectile(으)로부터 상속된 Public 멤버 함수
 ASphereShapeProjectile ()
 
- 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)
 
bool OverridePendingLaunchPath (const FVector &InStart, const FVector &InDirectionOrTarget)
 
void SetMeshWorldRotation (const FRotator &WorldRotation)
 
virtual void OnCollided (const AActor *HitTarget, const FHitResult &Hit)
 
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 BeginPlay () override
 
virtual void OnLaunched (AActor *LauncherOwner, const FVector &InStart, const FVector &InDirectionOrTarget) override
 
virtual void OnFinished (FVector TerminatedPosition, const AActor *Terminator, EProjectileFinishReason FinishReason) override
 
virtual void OnSpawnFromPool_Implementation () override
 
virtual void OnReturnToPool_Implementation () override
 
void PlayExplosionEffects (FVector ExplosionLocation)
 
- ADamagedProjectile(으)로부터 상속된 Protected 멤버 함수
FORCEINLINE AActor * GetCombatHitSourceActor () const
 
- AProjectileBase(으)로부터 상속된 Protected 멤버 함수
void ApplyPawnCollisionResponse () const
 
virtual FTransform GetCollisionParticleTransform (const AActor *OtherActor, const FHitResult &Hit) const
 

Protected 속성

float ExplosionRadius = 250.0f
 
TEnumAsByte< ECollisionChannel > ExplosionTraceChannel
 
FPatternWarningDecalSettings WarningDecalSettings
 
float MaxFlightDuration = 5.0f
 
TObjectPtr< UPatternWarningDecalComponent > WarningDecalComponent
 
- ASphereShapeProjectile(으)로부터 상속된 Protected 속성
TObjectPtr< USphereComponent > SphereComponent
 
- 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 멤버 함수

void OnProjectileArrived ()
 
void OnFlightTimeout ()
 
void ClearFlightTimeout ()
 
void StartLandingWarning (const FVector &TargetLocation) const
 
void StopLandingWarning (EProjectileFinishReason FinishReason) const
 
void TriggerExplosion (const FVector &ExplosionLocation)
 

Private 속성

bool bExplosionTriggered = false
 
FTimerHandle FlightTimeoutTimerHandle
 

추가로 상속된 멤버들

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

상세한 설명

목표점 도착 또는 충돌 시 한 번만 광역 타격을 적용하는 폭발형 Projectile입니다.

생성자 & 소멸자 문서화

◆ AExplosiveProjectile()

AExplosiveProjectile::AExplosiveProjectile ( )
16{
17 WarningDecalComponent = CreateDefaultSubobject<UPatternWarningDecalComponent>(TEXT("WarningDecalComponent"));
20}
#define CCHANNEL_ENEMYACTION
Definition CK_Collision.h:8
TObjectPtr< UPatternWarningDecalComponent > WarningDecalComponent
Definition ExplosiveProjectile.h:58
TEnumAsByte< ECollisionChannel > ExplosionTraceChannel
Definition ExplosiveProjectile.h:49
void ApplyPawnCollisionResponse() const
Definition ProjectileBase.cpp:100
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ BeginPlay()

void AExplosiveProjectile::BeginPlay ( )
overrideprotectedvirtual

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

24{
25 Super::BeginPlay();
26
27 ProjectilePilotComponent->OnArrived.AddUniqueDynamic(this, &ThisClass::OnProjectileArrived);
28}
TObjectPtr< UProjectilePilotComponent > ProjectilePilotComponent
Definition ProjectileBase.h:196

◆ ClearFlightTimeout()

void AExplosiveProjectile::ClearFlightTimeout ( )
private
112{
113 GetWorldTimerManager().ClearTimer(FlightTimeoutTimerHandle);
114}
FTimerHandle FlightTimeoutTimerHandle
Definition ExplosiveProjectile.h:62
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnFinished()

void AExplosiveProjectile::OnFinished ( FVector  TerminatedPosition,
const AActor *  Terminator,
EProjectileFinishReason  FinishReason 
)
overrideprotectedvirtual

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

53{
55 StopLandingWarning(FinishReason);
56 Super::OnFinished(TerminatedPosition, Terminator, FinishReason);
57
59 {
60 return;
61 }
62
63 TriggerExplosion(TerminatedPosition);
64}
void TriggerExplosion(const FVector &ExplosionLocation)
Definition ExplosiveProjectile.cpp:153
void StopLandingWarning(EProjectileFinishReason FinishReason) const
Definition ExplosiveProjectile.cpp:136
void ClearFlightTimeout()
Definition ExplosiveProjectile.cpp:111
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnFlightTimeout()

void AExplosiveProjectile::OnFlightTimeout ( )
private
101{
103 {
104 return;
105 }
106
108}
FORCEINLINE EProjectileState GetProjectileState() const
Definition ProjectileBase.h:100
virtual void ForceEarlyFinish(const AActor *Terminator, const EProjectileFinishReason FinishReason)
Definition ProjectileBase.cpp:181
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnLaunched()

void AExplosiveProjectile::OnLaunched ( AActor *  LauncherOwner,
const FVector &  InStart,
const FVector &  InDirectionOrTarget 
)
overrideprotectedvirtual

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

32{
33 Super::OnLaunched(LauncherOwner, InStart, InDirectionOrTarget);
34 StartLandingWarning(InDirectionOrTarget);
35
37 if (MaxFlightDuration <= KINDA_SMALL_NUMBER)
38 {
39 return;
40 }
41
42 GetWorldTimerManager().SetTimer(
44 this,
45 &ThisClass::OnFlightTimeout,
47 false);
48}
float MaxFlightDuration
Definition ExplosiveProjectile.h:55
void StartLandingWarning(const FVector &TargetLocation) const
Definition ExplosiveProjectile.cpp:117
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnProjectileArrived()

void AExplosiveProjectile::OnProjectileArrived ( )
private
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnReturnToPool_Implementation()

void AExplosiveProjectile::OnReturnToPool_Implementation ( )
overrideprotectedvirtual

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

77{
79 if (IsValid(WarningDecalComponent))
80 {
81 WarningDecalComponent->CancelWarning();
82 }
83
84 bExplosionTriggered = false;
85 Super::OnReturnToPool_Implementation();
86}
bool bExplosionTriggered
Definition ExplosiveProjectile.h:61
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnSpawnFromPool_Implementation()

void AExplosiveProjectile::OnSpawnFromPool_Implementation ( )
overrideprotectedvirtual

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

68{
69 Super::OnSpawnFromPool_Implementation();
72 bExplosionTriggered = false;
73}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ PlayExplosionEffects()

void AExplosiveProjectile::PlayExplosionEffects ( FVector  ExplosionLocation)
protected
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StartLandingWarning()

void AExplosiveProjectile::StartLandingWarning ( const FVector &  TargetLocation) const
private
118{
119 if (IsValid(WarningDecalComponent) == false || IsValid(ProjectilePilotComponent) == false)
120 {
121 return;
122 }
123
124 const float ExpectedTravelDuration = ProjectilePilotComponent->GetExpectedTravelDuration();
125 if (ExpectedTravelDuration <= KINDA_SMALL_NUMBER || ExplosionRadius <= KINDA_SMALL_NUMBER)
126 {
127 return;
128 }
129
130 FTransform WarningTransform = FTransform::Identity;
131 WarningTransform.SetLocation(TargetLocation);
132 WarningDecalComponent->StartCircleWarningAtTransform(WarningTransform, ExpectedTravelDuration, ExplosionRadius, WarningDecalSettings);
133}
float ExplosionRadius
Definition ExplosiveProjectile.h:46
FPatternWarningDecalSettings WarningDecalSettings
Definition ExplosiveProjectile.h:52
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ StopLandingWarning()

void AExplosiveProjectile::StopLandingWarning ( EProjectileFinishReason  FinishReason) const
private
137{
138 if (IsValid(WarningDecalComponent) == false)
139 {
140 return;
141 }
142
144 {
145 WarningDecalComponent->StopWarning();
146 return;
147 }
148
149 WarningDecalComponent->CancelWarning();
150}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ TriggerExplosion()

void AExplosiveProjectile::TriggerExplosion ( const FVector &  ExplosionLocation)
private
154{
156 {
157 return;
158 }
159
160 bExplosionTriggered = true;
161
162 TArray<AActor*> TargetActors;
163 UWorld* World = GetWorld();
164 if (IsValid(World))
165 {
166#if ENABLE_DRAW_DEBUG
168 {
169 DrawDebugSphere(
170 World,
171 ExplosionLocation,
173 32,
174 FColor::Orange,
175 false,
176 1.0f,
177 0,
178 2.0f);
179 }
180#endif
181
182 TArray<FOverlapResult> OverlapResults;
183 FCollisionQueryParams QueryParams(SCENE_QUERY_STAT(ExplosiveProjectile), false, this);
184
185 World->OverlapMultiByChannel(
186 OverlapResults,
187 ExplosionLocation,
188 FQuat::Identity,
190 FCollisionShape::MakeSphere(ExplosionRadius),
191 QueryParams);
192
193 TargetActors.Reserve(OverlapResults.Num());
194 for (const FOverlapResult& OverlapResult : OverlapResults)
195 {
196 TargetActors.Add(OverlapResult.GetActor());
197 }
198 }
199
200 ApplyCombatHitPayloadToActors(TargetActors, ExplosionLocation);
201 PlayExplosionEffects(ExplosionLocation);
202}
void ApplyCombatHitPayloadToActors(const TArray< AActor * > &TargetActors, const FVector &ImpactOrigin) const
Definition DamagedProjectile.cpp:30
FORCEINLINE AActor * GetCombatHitSourceActor() const
Definition DamagedProjectile.h:22
void PlayExplosionEffects(FVector ExplosionLocation)
static bool ShouldDrawCombatTrace(const AActor *SourceActor)
Definition CombatDebug.cpp:30
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ bExplosionTriggered

bool AExplosiveProjectile::bExplosionTriggered = false
private

◆ ExplosionRadius

float AExplosiveProjectile::ExplosionRadius = 250.0f
protected

◆ ExplosionTraceChannel

TEnumAsByte<ECollisionChannel> AExplosiveProjectile::ExplosionTraceChannel
protected

◆ FlightTimeoutTimerHandle

FTimerHandle AExplosiveProjectile::FlightTimeoutTimerHandle
private

◆ MaxFlightDuration

float AExplosiveProjectile::MaxFlightDuration = 5.0f
protected

◆ WarningDecalComponent

TObjectPtr<UPatternWarningDecalComponent> AExplosiveProjectile::WarningDecalComponent
protected

◆ WarningDecalSettings

FPatternWarningDecalSettings AExplosiveProjectile::WarningDecalSettings
protected

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