My AI code is only making a sprite look Left or Right? Help please.

Basically in my update function for my hero i have an update which is calling this method on an enemy. However the enemy only ever looks left, or right. Can anyone help with this?

function SeekPlayer(shipLoc : Vector3)	{          
	transform.LookAt(shipLoc); 
	var rot = Quaternion.LookRotation(transform.position - shipLoc, Vector3.forward);
	transform.rotation = rot;   
	transform.eulerAngles = new Vector3(0, 0,transform.eulerAngles.z); 
	rigidbody2D.AddForce(transform.up * 3);
}

I’m assuming from the rigidbody2D, that this is a 2D game.

The first problem is that you have three separate tries at setting the rotation here. Each overwrites the previous one. Instead try this:

function SeekPlayer(shipLoc : Vector3)  {          
    var dir = shipLoc - transform.position;
    var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
    transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
    rigidbody2D.AddForce(transform.right * 3);
}

The rotation code assumes that the ‘forward’ of your 2D character is to the right. Since it appears from your code that the ‘forward’ is up, fix in Photoshop or you can subtract 90.0 from ‘angle’ before you pass it to the AngleAxis() function and return to using ‘transform.up’ for your AddForce(). Note to make this work, you might need to up your Drag setting for your Rigidbody2D.