For reasons unknown, I need to find the signed angle between two vectors which are on the same plane. This is proving difficult for me.
Here’s images to explain:


Now, how do I get the signed angle from the red arrow to the green one?
The plane is imaginary and the vectors are in world space.
Neyl
2
Try this method
public static float AngleSigned(Vector3 v1, Vector3 v2, Vector3 normal)
{
return Mathf.Atan2(Vector3.Dot(normal, Vector3.Cross(v1, v2)), Vector3.Dot(v1, v2)) * Mathf.Rad2Deg;
}
“Vector3 normal” is a plane normal
1 Like
Seems to work great, thanks a lot for the help! 
Hello, I’m using this formula and it works for me too, but I need to understand why it works! Can someone explain it to me?