Trying to make it so when the enemy collides with the player, the enemy dies, and the player is damaged.

I’m trying to make it so so when the enemy touches the player, the player gets hurt, and the enemy dies. But the player in this case is a plant (theres a player which is guarding plants from mosquitos, and if the plant gets hit, the enemy dies, and the plant gets damaged.) I dont quite understand 0nTriggerEnter2D, and I haven’t found any tutorials that helped. I don’t fully want you to write the code for me, just help me understand it better. Heres my code.
public float health = 2f;

   void PlantDeath()
   {
      Destroy()
   }

   void OnTriggerEnter2D(Collider2D col)
   {
       // if collider is enemy, subtracts 1 hp
        if (other.gameObject.tag == ("Enemy"))
        {
            health -= 1f;
         
          // when hit, changes color
           SpriteRenderer sr;
           sr = gameObject.GetComponent<SpriteRenderer>() as SpriteRenderer;
          sr.color = new Color(243, 134, 1);

         other.GameObject.health -= 5000;
         if (health <= 0)
         {
              PlantDeath()
         }
     }
  }
}

Hey!
In line 18 lies your problem.
If you’re trying to decrease health from a certain object, you need to access the script where the health parameter lies and decrease it from there.
Just as you did with changing colors- you accessed the SpriteRenderer component inside the current gameobject, then accessed the color parameter and then changed it.
Writing other.GameObject.health -= 5000; is equivalent to if you wrote gameobject.color = new color… in order to change your gameobject’s color.
So if we want to decrease health from the enemy,

  1. The health variable needs to be public (or private with a get and set). So make sure its declared as a public variable in the enemy health script.
  2. Get the script which contains the enemy health, access the health variable and decrease its value: other.GameObject.GetComponent< EnemyHealthScript>().health -= 5000f;