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);
 }