using UnityEngine; public class Health : MonoBehaviour, IDamageable { private float _currentHealth; [SerializeField] private float _maxHealth = 100.0f; public event DamageEventHandler OnDamageTaken; private void Awake() { _currentHealth = _maxHealth; } public void Damage(float damageAmount) { var oldHealth = _currentHealth; _currentHealth -= damageAmount; OnDamageTaken?.Invoke(new DamageData { oldHealth = oldHealth, newHealth = _currentHealth, damageAmount = damageAmount }); } }