Question by
islamirodragneel · Aug 04, 2021 at 08:15 AM ·
enemymove an objectenemyai
My enemy is not moving
Even that I gave the same script to 2 other enemies and they move normally this one can't move This is the enemy script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Zombiii : MonoBehaviour
{
public float Speed;
public float AttackingRange;
private Transform player;
public int health = 100;
private Animator anim;
private bool L = false;
public float lineOfSite;
public int Damage;
Controller Runner;
bool InRange = false;
// Start is called before the first frame update
void Start()
{
player = GameObject.FindGameObjectWithTag("Player").transform;
anim = GetComponent<Animator>();
Runner = FindObjectOfType<Controller>();
}
//*******************************************************************
void Update()
{
anim.SetBool("Crawl", true);
flip();
float distanceFromPlayer = Vector2.Distance(player.position, transform.position);
if (distanceFromPlayer < lineOfSite && distanceFromPlayer > AttackingRange)
{
transform.position = Vector2.MoveTowards(this.transform.position, player.position, Speed * Time.deltaTime);
AttackAgain();
}
if (distanceFromPlayer <= AttackingRange)
{
anim.SetTrigger("Attack");
if (InRange == false)
{
Runner.TakeDamage(Damage);
InRange = true;
Invoke("AttackAgain", 0.5f);
}
}
else
{
AttackAgain();
}
}
//*******************************************************************
public void TakeDamage(int damage)
{
health -= damage;
if (health <= 0)
{
anim.SetTrigger("Died");
Invoke("Die",0.5f);
}
}
// Update is called once per frame
void Die()
{
Destroy(gameObject);
}
void flip()
{
Vector3 characterScale = transform.localScale;
if (transform.position.x < player.position.x && L == false)
{
transform.Rotate(0f, 180f, 0f);
L = true;
}
if (transform.position.x > player.position.x && L == true)
{
transform.Rotate(0f, 180f, 0f);
L = false;
}
}
private void OnDrawGizmosSelected()
{
Gizmos.color = Color.green;
Gizmos.DrawWireSphere(transform.position, lineOfSite);
Gizmos.DrawWireSphere(transform.position, AttackingRange);
}
void AttackAgain()
{
InRange = false;
}
}
and this is its components And a polygon Collider
Please help what should I do
capture1.png
(35.1 kB)
capture2.png
(31.1 kB)
Comment