Object Teleport given a radius and direction

I have found myself struggling with what I thought would be a simple mechanic to implement. I want my player to have an “evade” action, where if they press the key mapped to the “Evade” axis, they teleport at max 5 units towards the mouse cursor. The first part works, which is teleporting to the mouse position if within 5 units. Here is the code for reference.

The next part is what I am struggling with. I am trying to get the angle between the player and the mouse cursor, which is working fine. I then turn the angle to radians using Mathf.DegToRad. Then I make a new Vector 2 with the x and y being the Cos and Sin of the angle, respectively. This is where I think things are going wrong, but I’m not sure of why or how to fix it. Any help would be appreciated. Reference code below.

Notes: The game is top-down 2.5D, hence the vector2 to vector3 translation. evadeCount irrelevant to question.

Can’t you simply do

Vector3 mousePosition = new Vector3( Input.mousePosition.x, Input.mousePosition.y, 10f );
mousePosition         = Camera.main.ScreenToWorldPoint( mousePosition ) ;
Vector3 deltaPosition = mousePosition - transform.position;
evadeCount            = ( deltaPosition .sqrMagnitude <= 25 ) ? evadeCount + 1 : 11;
transform.position   += deltaPosition.ClampMagnitude( 5 ) ;

(This code is meant to replace all your if/else piece of code)