Equivalent of "Degree to Vector2" in Unity

I’m using these math helper functions currently:

public static class MathHelpers
{
    public static Vector2 RadianToVector2(float radian)
    {
        return new Vector2(Mathf.Cos(radian), Mathf.Sin(radian));
    }

    public static Vector2 RadianToVector2(float radian, float length)
    {
        return RadianToVector2(radian) * length;
    }

    public static Vector2 DegreeToVector2(float degree)
    {
        return RadianToVector2(degree * Mathf.Deg2Rad);
    }

    public static Vector2 DegreeToVector2(float degree, float length)
    {
        return RadianToVector2(degree * Mathf.Deg2Rad) * length;
    }
}

in my scripts.

Example:

public class MoveScript : MonoBehaviour
{
    public float Angle = 90f;
    public float Speed = 5f;

    private void Update()
    {
        Vector3 velocity = MathHelpers.DegreeToVector2(Angle, Speed);
        transform.position += velocity * Time.deltaTime;
    }
}

But I bet there is built in way in Unity to accomplish this without requiring to use my MathHelpers class which I was using in XNA. But after searching for hours still can’t find method which can convert degree to Vector2 or Vector3 in Unity.

So how can I convert degree to Vector2/Vector3 to be able to use it as velocity?

Well, if you want to only use methods available in Unity you can use something ugly like this:

Vector2 dir = (Vector2)(Quaternion.Euler(0,0,degree) * Vector2.right);

Even it’s quite short, i would recommend to use similar helpers you used in XNA since a quaternion rotation would expand the quaternion to a 3x3 rotation matrix. This is better for performance:

public static Vector2 RadianToVector2(float radian)
{
    return new Vector2(Mathf.Cos(radian), Mathf.Sin(radian));
}
 
public static Vector2 DegreeToVector2(float degree)
{
    return RadianToVector2(degree * Mathf.Deg2Rad);
}

A typical Unity way would be to use Vectors:

Vector3 dir = Quaternion.AngleAxis(angle, Vector3.forward) * Vector3.right;

And you can cast the result to get a Vector2 if you want.

But for purely 2D calculations, your code may be faster. Note there is a Mathf.Deg2Rad, so for degrees you can do this without the extra function call:

 return new Vector2(Mathf.Cos(degree * Mathf.Degree2Rad), Mathf.Sin(degree * Mathf.Degree2Rad));