- Home /
Enemy flying
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");
}
}
Answer by Kennai · Jun 10, 2019 at 12:21 PM
I bet it because your building Y position is not zero. Maybe you can do something like that for moving to building
Vector3 vect;
vect = Building.transform.position;
vect.y = 0;
transform.LookAt(vect);
transform.position += transform.forward * MoveSpeed * Time.deltaTime;
It worked but now when the player jump the enemy try to fly against the player how do i fix that?
The code is the exact same as you see right above here