- Home /
[2d] Rotating to target position.
Hi, I have been trying to do this for a good few hours now so i decided to try get some help. My game is 2d and the camera is at (0,0,-5) im trying to get an entity to look at me and follow me where ever i go but when i try to do it with the following code it flips the sprite and rotates him on a different axis and moves him off the playing plane (or other complications).
here is some stuff i have tried and a picture of how the game works.
float angle = Mathf.Atan2(destination.x, destination.y) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);//this just made him go across the x axis.
Vector2.MoveTowards(transform.position,selectedAsteroid.transform.position,1 * Time.deltaTime);
//this just makes him go forward in the direction he is pointing.
neededRotation = Quaternion.LookRotation (transform.position - destination, Vector3.forward);
transform.rotation = Quaternion.Slerp (transform.rotation, neededRotation, rotationSpeed * Time.deltaTime);
//this one makes him go off on to the wrong axis and rotate around me on the z axis.
So now you have all the details of what im having problems with, please help! thanks in advance.
Answer by 8Eye · Oct 17, 2014 at 09:21 PM
By the way i worked it out finally.
neededRotation = Quaternion.LookRotation(Vector3.forward, destination - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation,neededRotation, rotationSpeed * Time.deltaTime);
As you can see it was pretty much what i already had but i had to switch "destintion" with "transform.position". Hope i helped anyone who is having the same issue.
Your answer
Follow this Question
Related Questions
2d Texture Rotation Problem 1 Answer
2D Top down pathfinding 0 Answers
How to Rotate Editor Camera in 2D? 1 Answer
Rotation problem 1 Answer
How to keep Diagonal Movement Direction in 2D Isometric game? 0 Answers