i need help removing an error in my targetting/attack script

ive made this script and have had a bit of help but now i seem to get and error

and if you can help me set it to target the closest target(Enemy)/deselect when selecting new targget(Enemy) id be forever grateful :slight_smile:

Assets/_Scripts/random scripts/PlayerAttack.cs(17,54): error CS0029: Cannot implicitly convert type UnityEngine.GameObject[]' to System.Collections.Generic.List’

///
/// PlayerAttack.cs
///
/// This is a basic attack script to get us use to usng C# and Unity
///
/// Attach ths script to your player
///
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class PlayerAttack : MonoBehaviour {
public GameObject target;
public float attackTimer;
public float coolDown;

List<GameObject> AllEnemiesList = GameObject.FindGameObjectsWithTag("Enemy"); 
List<GameObject> VisibleEnemiesList = new List<GameObject>();

// Use this for initialization
void Start () {
	attackTimer = 0;
	coolDown = 2.0f;
	
	foreach (Transform Enemy in EnemiesList) {
if (Enemy.GameObject.renderer.IsVisibleFrom(Camera.main)) {
    VisibleEnemiesList.Add (Enemy.GameObject);
}

}
}

// Update is called once per frame
void Update () {
	if(attackTimer > 0)
		attackTimer -= Time.deltaTime;
	
	if(attackTimer < 0)
		attackTimer = 0;
	
	if(Input.GetKeyUp(KeyCode.Mouse0)) {
		if(attackTimer == 0) {
			Attack();
			attackTimer = coolDown;
			
			
		}
		if (Input.GetKey (KeyCode.Tab)) {
			TargetEnemy();

}
}

}

private void Attack() {
	float distance = Vector3.Distance(target.transform.position, transform.position);
	
	Vector3 dir = (target.transform.position - transform.position).normalized;
	
	float direction = Vector3.Dot(dir, transform.forward);
	
	if(distance < 2.5f) {
		if(direction > 0) {
			EnemyHealth eh = (EnemyHealth)target.GetComponent("EnemyHealth");
			eh.AddjustCurrentHealth(-10);
		}
	}
}

}

@meat5000 would be correct, you’re trying to convert an array to a list, or rather, you’re assigning the value of a List to an Array. But, there are some other problems you’re going to come across.

1.) GameObject.FindGAmeObjectsWithTag() returns a GameObect. You’re trying to set AllEnemiesList equal to a GameObject.
2.) You can’t initialize AllEnemiesList before runtime. You need to move that value assign to Start or Awake.