FindGameObjectWith "next" Tag

Hey Guys,

Problem: Finding one game object with tag “one”, destroying it, and then finding a different game object with a different tag “two”, and destroying that one. Then on to tag “three” and so on.

Here’s what I have so far:

using UnityEngine;
using System.Collections;

public class EnemyAI : MonoBehaviour {
	public Transform target;
	public int moveSpeed;
	public int rotationSpeed;
	public float maxDistance = .5f;

	private Transform myTransform;
	NavMeshAgent agent;


	void Awake () {
		myTransform = transform;
	}


	void Start () {
		agent = GetComponent<NavMeshAgent> ();

	}
	

	void Update () {

		GameObject go = GameObject.FindGameObjectWithTag("Tower");
		
		target = go.transform;
		Debug.DrawLine(target.position, myTransform.position, Color.yellow);

		//Look at Target
		myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);

		if (Vector3.Distance(target.position, myTransform.position) > maxDistance) {
		//move towards Target
		myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
	}
		if(Target == null)
		{
			GameObject go = GameObject.FindGameObjectWithTag("baseCenter");
		}
	}

}

Any suggestions?

Thanks,

Stef

Destroy(GameObject.FindGameObjectWithTag(“one”));
Destroy(GameObject.FindGameObjectWithTag(“two”));
Destroy(GameObject.FindGameObjectWithTag(“three”));

You may want to clarify your question.
You can avoid having to find things by keeping track of them from the beginning.

You might want to use coroutines and it would be something like this:

void Start ()
{
	StartCoroutine (MoveAndDestroy ());
}

IEnumerator MoveToTarget (GameObject t)
{
	Vector3 dir = (t.transform.position - transform.position).normalized;

	while (Vector3.Distance (t.transform.position, transform.position) > 2)
	{
		transform.position += dir;
		yield return null;
	}
}

IEnumerator MoveAndDestroy ()
{
	GameObject one = GameObject.FindGameObjectWithTag("one");
	GameObject two = GameObject.FindGameObjectWithTag ("two");
	GameObject three = GameObject.FindGameObjectWithTag ("three");
	yield return StartCoroutine (MoveToTarget (one));
	Destroy (one);
	yield return StartCoroutine (MoveToTarget (two));
	Destroy (two);
	yield return StartCoroutine (MoveToTarget (three));
	Destroy (three);
}

Hope it helps.

Cheers,

Thomas