my enemy isn't looking at the player in 2d

i’m trying to make a piranha that follows the player and i’m using a rotateScript for it to look at the player but when i try to set the coordinates for the piranha to look at the player it doesn’t set it

this is the piranhas code to set the target :
Rotate = GetComponent();

    PiranhaAnim = GetComponent<Animator>();

    SeenPlayer = Physics2D.OverlapCircle(transform.position, CheckRadius, WhatIsPlayer);

    if (SeenPlayer == false)
        transform.position = Vector2.MoveTowards(transform.position, MovePositions[MovingToPatrolPoint].position, PatrolSpeed * Time.deltaTime); = MovePositions[MovingToPatrolPoint];
        PiranhaAnim.SetBool("Angry", false);
        check = true;
        Vector3 eulerRotation = transform.rotation.eulerAngles;
        transform.rotation = Quaternion.Euler(eulerRotation.x, eulerRotation.y, 0);
    else if (SeenPlayer == true) {
        transform.position = Vector2.MoveTowards(transform.position, PlayerPosition.position, AttackSpeed * Time.deltaTime); = PlayerPosition;
        PiranhaAnim.SetBool("Angry", true);
        check = false;

and heres my rotatetowardsScript :

public float speed;
public float MinusRot;

public Transform target;

// Update is called once per frame
void Update()
    Vector3 dir = target.position - transform.position;

    float angle = Mathf.Atan2(dir.y,dir.x) * Mathf.Rad2Deg;

    transform.rotation = Quaternion.AngleAxis(angle - MinusRot, Vector3.forward);

Here’s how I did it.

    Vector3 initialDirection = Vector3.right; //the direction the gun points to at the beginning
    Vector3 aimDirection = TargetPosition - GunPosition;
    float angleDif = Vector2.SignedAngle(aimDirection, currentGunDirection);
    currentGunDirection= Quaternion.AngleAxis(Mathf.Min(rotateSpeed, Mathf.Abs(angleDif)) * Mathf.Sign(angleDif), -Vector3.forward) * currentGunDirection;

    transform.rotation = Quaternion.AngleAxis(Vector2.SignedAngle(currentGunDirection, initialDirection), -Vector3.forward);