AI wont move. Im stumped

added a list for some AI targeting, but now my AI wont move. AI’s be stingy…

Brief description: the AI targets the enemy, but wont use the parameters for its move function anymore.

I think its because the list has Transform components in it, but the move parameters call for “goul.position”. unless thats the same thing >.>

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Gouloriginal1 : MonoBehaviour {
	public Enemy2D enemy2D;
	public Transform target;
	public Transform player;
	public int moveSpeed;
	private Transform goul;
	public int idleDistance = 1;
	public int enemyMaxDistance = 20;
	public int enemyMinDistance = 2;
	//attack vars
	public float meleeRange = 2;
	float attackRate = 1f;
	float coolDown = 1;
	public int goulDamage = 1;
	//targeting vars
	public List<Transform> targets;
	public Transform selectedTarget;
	private Transform bleh;
	//12+ hours on this fucking script...
	void Awake(){
		goul = transform;
	}
	void Start () {
		targets = new List<Transform> ();
		selectedTarget = null;
		goul = transform;
		AddAllEnemies ();
		//GameObject to = GameObject.FindGameObjectWithTag ("Enemy");
		//target = to.transform;
		GameObject po = GameObject.FindGameObjectWithTag("Player");
		player = po.transform;
	}
	public void AddAllEnemies(){
		GameObject[] go = GameObject.FindGameObjectsWithTag ("Enemy");
		foreach(GameObject enemy in go)
			AddTarget (enemy.transform);
	}
	public void AddTarget(Transform enemy){
		targets.Add (enemy);
	}
	private void SortTargetsByDistance(){
		if (selectedTarget != null) {
			targets.Sort (delegate(Transform t1, Transform t2) {
				return Vector3.Distance (t1.position, goul.position).CompareTo (Vector3.Distance (t2.position, goul.position));
			}); 
		}
	}
	private void TargetEnemy(){
		if (selectedTarget == null) {			
			SortTargetsByDistance ();
			selectedTarget = targets [0];
			target = targets [0];
				} else {int index = targets.IndexOf (selectedTarget);
						if (index < targets.Count - 1) {
								index++;
						} else {
								index = 0;
						}
						DeselectTarget ();
						selectedTarget = targets [index];
				}
					SelectTarget ();				
				}
	//indicates which target you have selected ( next 2)
	private void SelectTarget(){
		if (selectedTarget != null) {
			selectedTarget.renderer.material.color = Color.green;
		}
	}
	public void DeselectTarget(){
		selectedTarget.renderer.material.color = Color.red;
		selectedTarget = null;
		}
	void Update (){ 
		Vector3 theScale = transform.localScale;
		theScale.x *= -1;
		transform.localScale = theScale;
		if (selectedTarget == null) {
						TargetEnemy ();		
				}
	}	
	void FixedUpdate () {
		if( target != null){
			if (Vector3.Distance (goul.position, target.position) < meleeRange) {
				if (Time.time >= coolDown){
					GoulAttack();
					coolDown = Time.time + attackRate;
				}
			}
		}
		if (target == null || Vector3.Distance (goul.position, target.position) > enemyMaxDistance){
			if (Vector3.Distance (goul.position, player.position) > idleDistance) {
				if (player.position.x < goul.position.x) {
						goul.position -= goul.right * moveSpeed * Time.deltaTime; // player is left of goul, move left
				} else if (player.position.x > goul.position.x) {
						goul.position += goul.right * moveSpeed * Time.deltaTime; // player is right of goul, move right
					  }
				}
		}
		else if (target != null) {
			if (Vector3.Distance (player.position, target.position) < enemyMaxDistance) {
				if (Vector3.Distance (goul.position, target.position) > enemyMinDistance) { 
					if (target.position.x < goul.position.x) {
						goul.position -= goul.right * moveSpeed * Time.deltaTime; // target is left of goul, move left
					} else if (target.position.x > goul.position.x) {
						goul.position += goul.right * moveSpeed * Time.deltaTime; // target is right of goul, move right
					}
				}
			}
		}
		Debug.DrawLine(player.position, goul.position, Color.yellow);
		if (target != null) {
						Debug.DrawLine (target.position, goul.position, Color.green);
		}		
	}
	private void GoulAttack(){
		//find target with tag
					                                          //send damage call to enemy script
		target.gameObject.SendMessage ("EnemyDamaged", goulDamage, SendMessageOptions.DontRequireReceiver);
	}
}

Maybe you should edit down the code to a reasonable point for one of us to scan.

In doing so, you will probably find your answer, it’s what happens to me,

it was 134 lines before D:

so i figured it out, after 4 hours… my movespeed variable was set to 0 in the inspector.

That bites me a lot, so I make variables private until they are done.