private void OnTriggerEnter2D(Collider2D collision) { _script_DamageZone hitzone = collision.GetComponent <_script_DamageZone>(); if (hitzone != null) { // This might be a good place to handle if the player is still under hit-invincibility. // Handle logic of getting hit by an enemy if (hitzone.DamageSource == DamageSource.Enemy) { ProcessDamageFromEnemy(hitzone.GetPayload()); } // Handle logic of getting hit by an environmental hazard. if (hitzone.DamageSource == DamageSource.Environment) { DamageSourcePayload payload = hitzone.GetPayload(); } // Handle logic of getting hit by an undefined hazard. if (hitzone.DamageSource == DamageSource.Other) { Debug.Log("Player hit undefined hazard."); } } // Code above only handles trigger zones with a DamageZone component // Code below handles other trigger zones, like loading zones or cutscene triggers. }
/** * Whenever the player is hit by an enemy, processes the on-hit payload. */ private void ProcessDamageFromEnemy(DamageSourcePayload payload) { Debug.Log("Player took damage: " + payload.DamageDealt); }