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 () {

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


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

Anyone know a way that works? Thanks :slight_smile:

Here, I basically got this from here:


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.