# LookAt on one axis

Hello

I have a cube i want to look at the position where the mouse clicks (using a raycasthit and a plane in front of the camera with no mesh renderer) but only on the x axisâ€¦the problem with my code is that the cube will look at the mouse cursor, unless i click behind it, then it doesnâ€™t look.

Iâ€™ve tried it by setting the rotation that i DONâ€™T want to move.

``````    var direction : Vector3;

function Update () {

if(Input.GetButtonDown("Shoot2"))
{

var hit : RaycastHit;
if(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), hit))

{

direction = (hit.point);

transform.LookAt(direction);

}

}

transform.eulerAngles.y = 90;
transform.eulerAngles.z = 0;

}
``````

Anyone know a way that works? Thanks

Here, I basically got this from here:

this is tested, works perfectly

``````var direction : Vector3;

function Update(){
if (Input.GetButton("Fire1"))
{
var  cameraDif = Camera.main.transform.position.y - transform.position.y;
var mouseX = Input.mousePosition.x;
var    mouseY = Input.mousePosition.y;
var    mWorldPos = Camera.main.ScreenToWorldPoint( new Vector3(mouseX, mouseY, cameraDif));
var  mainPos = transform.position;
var diffX = mWorldPos.x - mainPos.x;
var   diffY = mWorldPos.y - mainPos.y;
var angle = Mathf.Atan2(diffY, diffX) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle + 90));
}
}
``````