Damage Data
The DamageData struct encapsulates all the details of a damage instance. It is passed between systems like Hitbox, ProjectileAmmo, and Health.
Summary
This struct:
- Holds the amount and position of damage
 - Tracks the instigator (e.g., shooter, attacker)
 - Supports fallbacks and validation
 
Fields
| Field | Type | Description | 
|---|---|---|
damagePoints | float | Amount of damage to apply. | 
hitPoint | Vector3 | Position where the hit occurred. | 
hitNormal | Vector3 | Surface normal at the hit point (for physics or VFX). | 
instigator | GameObject | The entity that caused the damage. | 
Static Members
| Member | Description | 
|---|---|
DamageData Empty | Returns an empty DamageData with all fields zero/null. | 
bool IsEmpty(DamageData damageData) | Returns true if the DamageData is empty. | 
Constructors
| Constructor | Description | 
|---|---|
DamageData(DamageData data) | Copies data from another instance. | 
Usage
Tip
Use this struct when applying damage from projectiles, raycasts, or melee hits.
Note
Add fields like damageType, critChance, or sourceWeapon if your system needs more context.