# Equivalent of "Degree to Vector2" in Unity

I’m using these math helper functions currently:

``````public static class MathHelpers
{
{
}

{
}

public static Vector2 DegreeToVector2(float degree)
{
}

public static Vector2 DegreeToVector2(float degree, float 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)
{
}

public static Vector2 DegreeToVector2(float degree)
{
}
``````

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));
``````