Overlapsphere not returning all colliders it touches

I’m using an overlapsphere to detect whether enemies are close enough to be hit, iterating through the array it generates, and applying damage to every enemy within range. The problem is, enemies only take damage inconsistently: I’ve put three enemies in a cluster around me, make the overlapsphere more than big enough to cover them all, and watched as only one or two of the pack take damage. Am I somehow missing something in my iteration?

Below is the function I’m trying to fix:

void Attack(){
	center = transform.position;
			Collider[] hitColliders = Physics.OverlapSphere (center, radius);
	for (int i = 0; i < hitColliders.Length; i++){
				if (hitColliders*.gameObject.tag == "Enemy"){*

_ distanceToEnemy = Vector3.Distance(transform.position, hitColliders*.gameObject.transform.position);_
if (distanceToEnemy <= attackRange){_
_ hitColliders .gameObject.SendMessage (“ApplyDamage”, damage);
Debug.Log (“Applied damage”);

* }*
* i++;*
* }*

* }*

I think it’s because you’re increasing i variable twice.