public static float ToAng(this Vector2 v, V2AngleMode angMode = V2AngleMode.Angle) { switch (angMode) { case V2AngleMode.Angle: return(MathHelper.Angle(v)); case V2AngleMode.AngleAlt: return(MathHelper.AngleAlt(v)); case V2AngleMode.CCW_AngleAlt: return(MathHelper.UnAngleAlt(v)); case V2AngleMode.ThirdType: var vector2 = v - new Vector2(); var vector1 = new Vector2(1, 0); // 12 o'clock == 0°, assuming that y goes from bottom to top return(Mathf.Rad2Deg * (Mathf.Atan2(v.y, v.x) - Mathf.Atan2(vector1.y, vector1.x))); default: Debug.Log("Unhandled switch, returning normal angle mode"); goto case V2AngleMode.Angle; } }