UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DamageEvents.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
8#include "Engine/HitResult.h"
9#include "DamageEvents.generated.h"
10
11class UDamageType;
12
14USTRUCT(BlueprintType)
16{
18
19public:
22
24 : DamageTypeClass(InDamageEvent.DamageTypeClass)
25 { }
26
27 virtual ~FDamageEvent() { }
28
32
34 UPROPERTY()
35 TSubclassOf<UDamageType> DamageTypeClass;
36
38 static const int32 ClassID = 0;
39
40 virtual int32 GetTypeID() const { return FDamageEvent::ClassID; }
41 virtual bool IsOfType(int32 InID) const { return FDamageEvent::ClassID == InID; };
42
44 ENGINE_API virtual void GetBestHitInfo(AActor const* HitActor, AActor const* HitInstigator, FHitResult& OutHitInfo, FVector& OutImpulseDir) const;
45};
46
48USTRUCT()
50{
52
53
54 UPROPERTY()
55 float Damage;
56
58 UPROPERTY()
60
62 UPROPERTY()
63 FHitResult HitInfo;
64
65 FPointDamageEvent() : Damage(0.0f), ShotDirection(ForceInitToZero), HitInfo() {}
69
71 static const int32 ClassID = 1;
72
73 virtual int32 GetTypeID() const override { return FPointDamageEvent::ClassID; };
74 virtual bool IsOfType(int32 InID) const override { return (FPointDamageEvent::ClassID == InID) || FDamageEvent::IsOfType(InID); };
75
77 ENGINE_API virtual void GetBestHitInfo(AActor const* HitActor, AActor const* HitInstigator, FHitResult& OutHitInfo, FVector& OutImpulseDir) const override;
78};
79
81USTRUCT(BlueprintType)
83{
85
86
87 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=RadialDamageParams)
88 float BaseDamage;
89
91 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=RadialDamageParams)
92 float MinimumDamage;
93
95 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=RadialDamageParams)
96 float InnerRadius;
97
99 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=RadialDamageParams)
100 float OuterRadius;
101
103 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=RadialDamageParams)
104 float DamageFalloff;
105
107 : BaseDamage(0.f), MinimumDamage(0.f), InnerRadius(0.f), OuterRadius(0.f), DamageFalloff(1.f)
108 {}
110 : BaseDamage(InBaseDamage), MinimumDamage(0.f), InnerRadius(InInnerRadius), OuterRadius(InOuterRadius), DamageFalloff(InDamageFalloff)
111 {}
113 : BaseDamage(InBaseDamage), MinimumDamage(InMinimumDamage), InnerRadius(InInnerRadius), OuterRadius(InOuterRadius), DamageFalloff(InDamageFalloff)
114 {}
116 : BaseDamage(InBaseDamage), MinimumDamage(0.f), InnerRadius(0.f), OuterRadius(InRadius), DamageFalloff(1.f)
117 {}
118
120 ENGINE_API float GetDamageScale(float DistanceFromEpicenter) const;
121
123 float GetMaxRadius() const { return FMath::Max( FMath::Max(InnerRadius, OuterRadius), 0.f ); }
124};
125
127USTRUCT()
129{
131
132
133 UPROPERTY()
135
137 UPROPERTY()
138 FVector Origin;
139
141 UPROPERTY()
142 TArray<FHitResult> ComponentHits;
143
145 static const int32 ClassID = 2;
146
147 virtual int32 GetTypeID() const override { return FRadialDamageEvent::ClassID; };
148 virtual bool IsOfType(int32 InID) const override { return (FRadialDamageEvent::ClassID == InID) || FDamageEvent::IsOfType(InID); };
149
151 ENGINE_API virtual void GetBestHitInfo(AActor const* HitActor, AActor const* HitInstigator, FHitResult& OutHitInfo, FVector& OutImpulseDir) const override;
152
154 : Origin(ForceInitToZero)
155 {}
156};
157
158
@ ForceInitToZero
Definition CoreMiscDefines.h:156
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
Definition Actor.h:257
Definition Array.h:670
Definition SubclassOf.h:30
Definition DamageType.h:21
Definition DamageEvents.h:16
FDamageEvent(FDamageEvent const &InDamageEvent)
Definition DamageEvents.h:23
virtual ~FDamageEvent()
Definition DamageEvents.h:27
FDamageEvent(TSubclassOf< UDamageType > InDamageTypeClass)
Definition DamageEvents.h:29
static const int32 ClassID
Definition DamageEvents.h:38
virtual bool IsOfType(int32 InID) const
Definition DamageEvents.h:41
FDamageEvent()
Definition DamageEvents.h:21
Definition HitResult.h:21
Definition DamageEvents.h:50
virtual bool IsOfType(int32 InID) const override
Definition DamageEvents.h:74
static const int32 ClassID
Definition DamageEvents.h:71
virtual int32 GetTypeID() const override
Definition DamageEvents.h:73
FPointDamageEvent(float InDamage, const FHitResult &InHitInfo, FVector const &InShotDirection, TSubclassOf< UDamageType > InDamageTypeClass)
Definition DamageEvents.h:66
Definition DamageEvents.h:129
virtual bool IsOfType(int32 InID) const override
Definition DamageEvents.h:148
FRadialDamageEvent()
Definition DamageEvents.h:153
static const int32 ClassID
Definition DamageEvents.h:145
Definition DamageEvents.h:83
float GetMaxRadius() const
Definition DamageEvents.h:123
FRadialDamageParams(float InBaseDamage, float InMinimumDamage, float InInnerRadius, float InOuterRadius, float InDamageFalloff)
Definition DamageEvents.h:112
FRadialDamageParams(float InBaseDamage, float InRadius)
Definition DamageEvents.h:115
FRadialDamageParams(float InBaseDamage, float InInnerRadius, float InOuterRadius, float InDamageFalloff)
Definition DamageEvents.h:109
Definition NetSerialization.h:541