Merhaba 2 tane player var 1 tanede düşman var o düşman en yakın playere doğru gidecek bunu nasıl yapabilirim alttaki kodda en yakın playeri seçiyor ancak ona doğru gitmiyor onu nasıl yapabilirim

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class zombie : MonoBehaviour
{
    private Animator anim;
    public Transform target;
    public int health = 1;
    private Player p;
    public int zombipuanı = 10;
    bool oyundevam = true;
    public int zombiparası = 10;
  BoxCollider pc2d;
    public GameObject[] otherEnemies;
    public GameObject Gun;
    public float Range;
    public Transform Target;
    bool Detected = false;
    Vector3 Direction;
    public float FireRate;
    float nextTimeToFire = 0;



    private void OnDrawGizmosSelected()
    {
        Gizmos.DrawWireSphere(transform.position, Range);
    }
    void Start()
    {
        pc2d = GetComponent<BoxCollider>();

        anim = GetComponent<Animator>();
        otherEnemies = GameObject.FindGameObjectsWithTag("Player");
        Target = PlayereEnYakinEnemy().GetComponent<Transform>();
        Vector3 targetPos = Target.position;
        Direction = PlayereEnYakinEnemy().transform.position - (Vector3)transform.position;
        RaycastHit2D rayInfo = Physics2D.Raycast(transform.position, Direction, Range);
    }

    // Update is called once per frame
    void Update()
    {

        otherEnemies = GameObject.FindGameObjectsWithTag("Player");
        Target = PlayereEnYakinEnemy().GetComponent<Transform>();
        Vector3 targetPos = Target.position;
        Direction = PlayereEnYakinEnemy().transform.position - (Vector3)transform.position;
        RaycastHit2D rayInfo = Physics2D.Raycast(transform.position, Direction, Range);

        if (rayInfo)
        {
            if (rayInfo.collider.gameObject.tag == "Player")
            {
                if (Detected == false)
                {
                    Detected = true;
                }

            }
            else
            {
                if (Detected == true)
                {
                    Detected = false;
                }
            }

            

        }
        if (Detected)
        {
            Gun.transform.up = Direction;
            if (Time.time > nextTimeToFire)
            {
                nextTimeToFire = Time.time + 1 / FireRate;
                
            }
        }
    }
    // Start is called before the first frame update


    // Update is called once per frame

    private void OnTriggerEnter(Collider other)  / / burası can yeri
    {
        if (other.gameObject.tag.Equals("mermi"))
        {
            health -= 1; // silme
            if (health <= 0)
            {



                Destroy(this.gameObject, 1.2f);


            }
        }
    }
    public GameObject PlayereEnYakinEnemy()   // burası en yakın playeri seçiyor burdan
    {

        float mesafe = Mathf.Infinity;
        GameObject enyakinenemy = null;  
        foreach (GameObject enemy in otherEnemies)
          
        {
            Vector3 aralarindakiMesafe = Gun.gameObject.transform.position - enemy.transform.position;
            float enyakinenemymesafesi = aralarindakiMesafe.sqrMagnitude;
            if (enyakinenemymesafesi < mesafe)
            {
            
                mesafe = enyakinenemymesafesi;
                enyakinenemy = enemy;
            }

        }
      
        return enyakinenemy;
    }

}
Burasıda haraket kodu yeri

  public void hareker()   // haraket kodu
    {
        if (oyundevam)
        {
            if (Vector3.Distance(transform.position, target.position) > 2f)
            {
                transform.position = Vector3.MoveTowards(transform.position, target.position, 3 * Time.deltaTime);
                anim.SetTrigger("yürümek");
            }
            else
            {
                anim.SetTrigger("saldırı");
            }
            oyundevam = true;
        }
    }