Lads,
I’m trying to move from one game object to another, destroying the game objects as I go. The character moves to the first target preperly but then gets stuck and will not proceed to the next target. Here’s the code:
using UnityEngine;
using System.Collections;
public class EnemyAI_2 : MonoBehaviour {
public Transform target;
public Transform target2;
public int moveSpeed;
public int rotationSpeed;
public float maxDistance = .5f;
public GameObject otherGameObject;
private Transform myTransform;
private NavMeshAgent agent;
private Strike_Timer strikeTimer;
void Awake () {
myTransform = transform;
strikeTimer = otherGameObject.GetComponent<Strike_Timer>();
}
void Start () {
agent = GetComponent<NavMeshAgent> ();
}
void Update () {
GameObject go = GameObject.FindGameObjectWithTag("Tower1");
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(strikeTimer.countdown <= 0.0f)
{
GameObject go2 = GameObject.FindGameObjectWithTag("baseCenter");
target2 = go2.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;
}
}
}
}
Any thoughts?
Stef