Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
ExplosiveProjectile.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
7#include "ExplosiveProjectile.generated.h"
8
9class UPatternWarningDecalComponent;
10
12UCLASS(Blueprintable, BlueprintType)
14{
15 GENERATED_BODY()
16
17public:
19
20protected:
21 virtual void BeginPlay() override;
22 virtual void OnLaunched(AActor* LauncherOwner, const FVector& InStart, const FVector& InDirectionOrTarget) override;
23 virtual void OnFinished(FVector TerminatedPosition, const AActor* Terminator, EProjectileFinishReason FinishReason) override;
24 virtual void OnSpawnFromPool_Implementation() override;
25 virtual void OnReturnToPool_Implementation() override;
26
27 UFUNCTION(BlueprintImplementableEvent, Category = "Projectile|Explosion")
28 void PlayExplosionEffects(FVector ExplosionLocation);
29
30private:
31 UFUNCTION()
32 void OnProjectileArrived();
33
34 void OnFlightTimeout();
35 void ClearFlightTimeout();
36
37 // 데칼
38 void StartLandingWarning(const FVector& TargetLocation) const;
39 void StopLandingWarning(EProjectileFinishReason FinishReason) const;
40
41 // 충돌(Overlap) 처리
42 void TriggerExplosion(const FVector& ExplosionLocation);
43
44protected:
45 UPROPERTY(EditDefaultsOnly, Category = "Projectile|Explosion", meta = (ClampMin = "0.0", Units = "cm"))
46 float ExplosionRadius = 250.0f;
47
48 UPROPERTY(EditDefaultsOnly, Category = "Projectile|Explosion")
49 TEnumAsByte<ECollisionChannel> ExplosionTraceChannel;
50
51 UPROPERTY(EditDefaultsOnly, Category = "Projectile|Explosion|Warning")
52 FPatternWarningDecalSettings WarningDecalSettings;
53
54 UPROPERTY(EditDefaultsOnly, Category = "Projectile|Flight", meta = (ClampMin = "0.0", Units = "s"))
55 float MaxFlightDuration = 5.0f;
56
57 UPROPERTY(VisibleAnywhere, Category = "Projectile|Explosion|Warning")
58 TObjectPtr<UPatternWarningDecalComponent> WarningDecalComponent;
59
60private:
61 bool bExplosionTriggered = false;
62 FTimerHandle FlightTimeoutTimerHandle;
63};
EProjectileFinishReason
Definition ProjectileBase.h:31
Definition ExplosiveProjectile.h:14
Definition DefaultProjectiles.h:36
Definition PatternWarningDecalData.h:33