Turret AI Attack Repeat Problem - C#

Hello, I’m a beginner developer trying to write a C# script that’s essentially a turret that attacks an enemy anytime it is within its detection radius. The problem is that when my player enters the detection radius, my script tells the turret to attack, and it does so twice but then the loop stops after the second attack.

Also, when my player exits the radius and re-enters, I do not get the Debug message “*** TRIGGER ENTER ***” however I can see the _enemyInRadius boolean change and the target value change each time.

using UnityEngine;
using System.Collections;

public class AI_TowerThree : MonoBehaviour {
	
	public Transform target;
	public bool _enemyInRadius = false;
	
	IEnumerator AttackLoop()
	{
		while(_enemyInRadius)
		{
			Debug.Log ("AttackLoop Initiated");
			Attack ();	
			yield return _enemyInRadius;
		}
	}
	
	private void Attack(){
		Debug.Log ("*** ATTACK ***");
		target.collider.SendMessageUpwards("ApplyDamage", towerDamage, SendMessageOptions.DontRequireReceiver);
		Debug.Log ("-Damage Received-");
	}
	
#region OnTrigger Enter & Exit
	public void OnTriggerEnter(Collider enemy){
		if(enemy.CompareTag("Enemy")){
			Debug.Log ("*** TRIGGER ENTER ***");
			target = enemy.transform;
			_enemyInRadius = true;
			StartCoroutine(AttackLoop());
		}
		
	}
	
	public void OnTriggerExit(Collider enemy){
		Debug.Log ("*** TRIGGER EXIT ***");
		target = null;
		_enemyInRadius = false;
	}
#endregion
	
}

OnTriggerEnter will work only once. u might want to use OnTriggerStay, so it keeps callin itself if u r in the area.