Hey all! So I’m trying to get my enemy to target the turrets in my game but whenever the turrets are targeted, the ai just stops moving. When turrets are not in my game, the ai is told to target the player position. Targeting the player is fine, but targeting the turrets breaks it for some reason. here is my code:
public class Enemy_Turret : MonoBehaviour
{
Transform turret;
Transform player;
EnemyHealth enemyHealth;
NavMeshAgent nav;
public float wait;
public bool hurt;
// Use this for initialization
void Start()
{
turret = GameObject.FindGameObjectWithTag("Turret").transform;
player = GameObject.FindGameObjectWithTag("Player").transform;
enemyHealth = GetComponent<EnemyHealth>();
nav = GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update()
{
if (PlayerHealth.playerCurrentHealth > 0 && enemyHealth.currentHealth > 0)
{
if (GameObject.Find("Tower Menu").GetComponent<TowerMenu>().tInGame >= 1)
{
nav.SetDestination(turret.position);
}
else if (GameObject.Find("Tower Menu").GetComponent<TowerMenu>().tInGame == 0)
{
nav.SetDestination(player.position);
}
}
else
{
nav.enabled = false;
}
}
void OnCollisionEnter(Collision col)
{
if (col.gameObject.tag == "Turret" && !hurt)
{
StartCoroutine(Damage());
}
}
//void OnCollisionStay(Collision col)
//{
// if ((col.gameObject.tag == "Player") && !hurt)
// {
// StartCoroutine(Damage());
// }
//}
IEnumerator Damage()
{
hurt = true;
PlayerHealth.playerCurrentHealth -= 5;
if (GameObject.Find("Enemy Spawn").GetComponent<EnemyManager>().wave2)
{
PlayerHealth.playerCurrentHealth -= 5;
}
else if (GameObject.Find("Enemy Spawn").GetComponent<EnemyManager>().wave3)
{
PlayerHealth.playerCurrentHealth -= 10;
}
else if (GameObject.Find("Enemy Spawn").GetComponent<EnemyManager>().wave4)
{
PlayerHealth.playerCurrentHealth -= 15;
}
yield return new WaitForSeconds(wait);
hurt = false;
}
}
Any thoughts?