Ejemplo n.º 1
0
    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;
        }
    }