private static float SignedAngleAroundVector(Vector3 a, Vector3 b, Vector3 c) { var v1 = Vector3.Cross(c, a); var v2 = Vector3.Cross(c, b); if (Vector3.Dot(Vector3.Cross(v1, v2), c) < 0) return -Vector3.Angle(v1, v2); return Vector3.Angle(v1, v2); }