public void DamageObject(GameObject r) { HealthManager hp = r.GetComponent <HealthManager>(); if (hp == null) { hp = r.GetComponentInParent <HealthManager>(); } if (hp != null) { Debug.Log("HIT: " + hp.name); if (damage > 0) { hp.TakeDamage(damage); if (knockBack) { hp.onDamaged?.Invoke(gameObject); } else { hp.BroadcastMessage("Flash", gameObject, SendMessageOptions.DontRequireReceiver); } } else { hp.HealDamage(-damage); } } }