I need to decide if I want something to swivel left or right towards my target. Currently, angle only seems to return positive values. I need to find out, if two objects are level, if I need to add angles to the y rotation of my object, or subtract angles in order for it to eventually face towards my target.
Is there a straightforward function in Unity I've overlooked?
asked Apr 23 '10 at 10:21 AM
You can use Mathf.Atan2 to compute the angle between 2D vectors. This only works for 2d rotations though, however often that's all you need even in a 3d game. Eg:
This should give you the target angle in the range -180 to 180 degrees.
answered Apr 23 '10 at 11:28 AM
You can test to see if the angle returned it more than 180 and then reverse the rotation your self (-360).
answered Apr 23 '10 at 10:33 AM
A nice trick for 3d: the cross product of two vectors is a vector quantity with a magnitude equal to the product of the magnitudes of the two vectors times the sine of the angle between them.
So for two normalised vectors:
The resulting vector can be used as an axis for rotation between the two input vectors.
answered May 06 '10 at 07:39 AM