How to apply damage without Raycast

Hi there!
Sorry if this question may look inappropriate but I can’t find a solution on my own.
First let me try to explain you what I’d like to do:
I’d like my enemy to decrease its life of an amount called damage, specified by the bullet with which it collides.

I’m using instantiate and prefabs to handle the shootings, not Raycast, so I can’t benefit from RaycastHit. All my bullets are prefab that player can instantiate.

So right now I’m checking for collisions with OnTriggerEnter, and then I’m applying the damage. If I had just one kind of bullet that would be done… but I’m planning to add more bullets to my game, so it’d be painful to write a specific OnTriggerEnter for every one of them, considering that I’d also have to access the damage of every bullet.

How can I do to make my enemy recognize which bullet hit it, so that it automatically decrease the right amount of health on every hit? I can’t help myself thinking that this must be something obvious…

Here is a part of my enemy script:

	void OnTriggerEnter(Collider collider){
		
		if(collider.gameObject.CompareTag("Shot")){
			
			AdjustHealth(??????); //I'd like to put in those brackets the current bullet's damage
			
		}
		
	}
	
	void AdjustHealth(float adj){
		
		currentHealth += adj;
		if(currentHealth <= 0)
			Destroy(this.gameObject);
	}
}

Code is appreciated, but I’d prefer you to point me in the right direction instead of just feeding me with the solution… thanks for your time!

Just send a message to the other object from the bullet, if it has an AdjustHealth function it will be called:

  public float damage = 10;

  void OnTriggerEnter(Collider otherCollider)
  {
       otherCollider.SendMessage("AdjustHealth", damage, SendMessageOptions.DontRequireReceiver);
  }