LookAt on one axis

Hello :slight_smile:

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 :slight_smile:

Here, I basically got this from here:

http://answers.unity3d.com/questions/262662/2d-sprite-rotation-towards-mouse.html

this is tested, works perfectly :slight_smile:

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));
             }
             }

Thanks for the reply, man :slight_smile:

Gonna see if i can figure out how the code works before i use it so i can keep learning, but you have ended my frustration and stopped me from crying like a little girl.

B-)