/// <summary> /// Respond this instance. /// So that the Zombie look for the Citizen and the Hero being in the range. /// </summary> public virtual void Respond() { foreach (GameObject go in GameManager.npc) { zombie = GameObject.Find("Zombie").GetComponent <Zombie>(); if (go != null) { if (go.GetComponent <Citizen>() || go.GetComponent <Hero>()) { dist = Vector3.Distance(go.transform.position, transform.position); if (dist <= closeDistance) { transform.position = Vector3.MoveTowards(transform.position, go.transform.position, (speed * Time.deltaTime)); if (dist <= 2f && go.GetComponent <Hero>()) { zombie.Damage(2, 20); } else if (dist <= 2f && go.GetComponent <Citizen>()) { zombie.Convert(go); } _state = State.Running; } } } } }