Using LookAT causes no rotation at all?
I'm having a problem where I'm using LookAt on a gameObject, to look towards a Vector3 position.
In this case, the world position of the mouse pointer.
I've restricted the rotation to the Z axis, however my GameObject doesn't move at all.
Here's how I'm doing it currently :
On top of file where I define variables :
[SerializeField]
private Vector2 aimPoint;
[SerializeField]
private Vector3 aimPointInWorld;
In the OnGUI function :
// Reload the aim-points (in OnGUI since Event is not accessible from update)
aimPoint = new Vector2(Event.current.mousePosition.x - 8, Event.current.mousePosition.y - 8);
aimPointInWorld = Camera.main.ScreenToWorldPoint(new Vector2(Event.current.mousePosition.x - 8, Event.current.mousePosition.y - 8));
And this is in the Update function :
// Player to crosshair rotation
gameObject.transform.LookAt(new Vector3(0, 0, aimPointInWorld.z));
Why is my 2D sprite not moving at all on any axis?
Answer by Brijs · Jun 20, 2016 at 07:44 AM
LookAt() method rotates the transform so the forward vector points at target.
You want to rotate sprite around z. But you are trying to make forward to look in z direction.
Forward is already aligned with z so it is looking already in direction you are referencing.
You can use this in update
transform.rotation = Quaternion.FromToRotation(transform.up, aimPointInWorld - transform.position);
First argument can be as per you requirement(direction in which 2D sprite is facing)
This results in my sprite rotating on x, y and z, and it doesn't look towards the pointer anyways. :/
$$anonymous$$ake aimPointInWorld.z = 0.
If that does not work then refer How to rotate around only z axis of Gameobject (2D)
That did fix one problem, however it seems to be spinning in an inverted direction. If I move my mouse one way, the character will rotate the other way. :<
Try
aimPointInWorld.x = -aimPointInWorld.x;
before calculating the direction.
Your answer
Follow this Question
Related Questions
How can i rotate an object using LookAt with only 1 axis? 0 Answers
Rotate an object to look at another object on one axis? 5 Answers
How would I add rotation limits to this? 1 Answer
How to translate D3DXMatrixLookAtLH to Unity? 1 Answer
How to object rotate on a single axis towards another object? C# 2 Answers