so im creating a enemy in a game where it will go after a building but if the player come withing a distance its attacking the play but i have a problem where if the enemy is attacking a building its flying and i dont want it to fly how do i stop it from flying? this is the script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GroundEnemyController : MonoBehaviour
{
public GameObject Player;
public GameObject Enemy;
public GameObject Building;
public float MoveSpeed = 5f;
public float MaxDist = 10f;
public float MinDist = 5f;
public float lookRadius = 10f;
public float attackRadius = 100f;
public float Health = 100f;
// Start is called before the first frame update
void Start()
{
Player = GameObject.FindGameObjectWithTag("Player");
Enemy = GameObject.FindGameObjectWithTag("Enemy");
Building = GameObject.FindGameObjectWithTag("Building");
}
// Update is called once per frame
void Update()
{
if ((Player.transform.position - transform.position).sqrMagnitude <= lookRadius * lookRadius)
{
transform.LookAt(Player.transform);
transform.position += transform.forward * MoveSpeed * Time.deltaTime;
} else if ((Building.transform.position - transform.position).sqrMagnitude <= attackRadius * attackRadius)
{
transform.LookAt(Building.transform);
transform.position += transform.forward * MoveSpeed * Time.deltaTime;
}
}
void OnDrawGizmosSelected()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(transform.position, lookRadius);
}
public void TakeDamage(float amnt)
{
Health -= amnt;
if (Health <= 0)
{
print("Enemy Has died!!!");
Destroy(Enemy);
}
print("Enemy took some damage");
}
}