JS Enemy Angle Rotation Follow

Hi all. I’m making a 2d game, and trying to get an enemy to look at the player constantly. The catch, is that my 2d game is not a platformer, but an overhead shooter where everything lies on the x,y plane. I have a script set up right now which effectivly follows and looks at the player, but when it rotates, it does it on the wrong axis. I’ve tried everything! Thanks for you help in advance,

public var moveSpeed = 3; //move speed
public var rotationSpeed = 3; //speed of turning

target = GameObject.FindWithTag("player").transform; //target the player

myTransform.rotation = Quaternion.Slerp(myTransform.rotation,Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);

myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;

This issue has come up a lot since Unity released their 2D stuff, and a number of usable solutions have been posted. The ‘right’ solution will depend on the natural orientation of your ‘enemy’. If the ‘enemy’ is a Sprite or a Quad, this code should work:

var dir = target.position - myTransform.position;
var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
var rotation = Quaternion.AngleAxis(angle, Vector3.forward);
myTransform.rotation = Quaternion.Slerp(myTransform.rotation, rotation, rotationSpeed * Time.deltaTime);

Note this code assumes that the ‘forward’ side of the object is on the right. If the forward side is currently another direction (up for example), you can either edit the texture in Photoshop, or you can adjust the angle before passing it to AngleAxis (i.e. subtract 90 for up).