Converting Z rotation to XY coords

Im trying to get the amount of impulse to add with AddForce using the current rotation of the object, but for some reason, when facing right, I get an output of 1,0, but up is like .8,.6 left is .5,.8 and down is .8.6 when it should be 1,0 0,1 -1,0 0,-1?

My math here:

rb.AddForce( new Vector2(Mathf.Cos(transform.rotation.z) * -1000, Mathf.Sin(transform.rotation.z) * -1000) );

That is NOT an angle. Transform.rotation is a quaternion and the 4 components of a quaternion represent a unit vector in 4d. So the z component is not an euler angle. What you probably wanted to use was transform.eulerAngles.z. However I don’t see the point of this at all. The transform component provides you with properties like forward, right or up which are the rotated worldspace direction vectors.

Apart from that, if your rigidbody is actually part of the same object as your transform, you could simply use AddRelativeForce which takes a local space direction as input.

Though since you didn’t actually specify what you want to achieve it’s up to you to figure out where to go from here.