# 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>();

if (SeenPlayer == false)
{
transform.position = Vector2.MoveTowards(transform.position, MovePositions[MovingToPatrolPoint].position, PatrolSpeed * Time.deltaTime);
Rotate.target = 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);
Rotate.target = 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);
``````