Find the closest Enemy that has a tag added in a list?

I’ve tried to make a fighting game between 4 teams, I completed everything but there is more complicated issue

when I start the match the AI didn’t attack the closest enemy

it fixed when I use (FindGameObjectsWithTag(“tag”)),
but he dosen’t when I use (FindGameObjectsWithTag(tag))

Because I don’t want to use (" ") i want it to find the closest Enemy with any tag added to the list

Example: the list has 3 tags (Team1,Team2,Team3) the fighter from Team1 fighting a fighter from Team2, now the Team2 fighter escaped and gone far away, and there is more closer enemy has Team3 tag, how can I make the Team1 fighter to stop chasing Team2 fighter who escaped, and start chasing the closer enemy Team3?

I used this code but he didn’t work

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class script: MonoBehaviour {

	public List<string> tags;
	public GameObject TargetedEnemy;

	void Start () {

	void Update () {

		foreach (var thetag in tags) {

			GameObject[] gos;
			gos = GameObject.FindGameObjectsWithTag (thetag);
			GameObject closest;
			float distance = Mathf.Infinity;
			Vector3 position = transform.position;
			foreach (GameObject go in gos) {
				Vector3 diff = go.transform.position - position;
				float curDistance = diff.sqrMagnitude;
				if (curDistance < distance) {
					closest = go;
					distance = curDistance;
					closest = TargetedEnemy;


Move GameObject closest; out of your for loop, you reinitialize it on each pass.

Also, I think you meant to write TargetedEnemy = closest; instead to update your variable available for the Editor.

I would also move the TargetedEnemy = closest; statement after the for loop so it actually only gets updated once with the closest found target after all possibilities have been processed in the loop.