// Update is called once per frame void FixedUpdate() { if (target && target.tag == "Enemy") { if (Vector2.Distance(transform.position, target.transform.position) < movementSpeed) { target.GetComponent <EnemyScript>().recieveDamage(1); transform.position = target.transform.position; } else { float angle = -Vector2.SignedAngle(transform.position - target.transform.position, Vector2.up); transform.Translate(Quaternion.Euler(0, 0, angle) * new Vector2(0, -movementSpeed)); } } else { List <GameObject> Elist = gate.getEnemies(); if (Elist.Count > 0) { /*for (int i = 0; i < Elist.Count; i++) { * if (Elist[i].tag == "Enemy") { * target = Elist[i]; * break; * } * }*/ target = Elist[Random.Range(0, Elist.Count)]; } else { Destroy(gameObject); } } }