Question about Rays and why getPoint function

Hello, my program is 2d, and here is the scene. I have a gameobject, and when I click, I calculate the direction vector from my player gameobject to my mouse click position. Then I turn that into a ray, with origin at my player, and then I make a new “projectile” gameobject that follows that ray by use ray.getPoint(Position) and I increment that position to make it move.

My issue is: If i click closer to my player gameobject, the new projectile will go slower than if I click farther away from the player gameobject. Wondering why that is.

My code is roughly as follows:

//In player Controller
if (Input.GetMouseButtonDown(0))
    {
    GameObject throwingProjectile = Instantiate(throwingEquip, transform.position, transform.rotation);
    Vector3 mouseVector = camera.ScreenToWorldPoint(Input.mousePosition);
    Vector3 direction = mouseVector - transform.position;
    Ray ray = new Ray(transform.position, direction);
    throwingProjectile.GetComponent<ProjectileController>().setTarget(ray, mouseVector);
    }

//In projectile Controller
public void setTarget(Ray mouseRay, Vector3 mouseVector)
    {
        ray = mouseRay;
        float angle = Mathf.Atan2(transform.position.y - mouseVector.y, transform.position.x - mouseVector.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.Euler(new Vector3(0f, 0f, angle));
       
    }

private void FixedUpdate()
    {
        transform.position = new Vector3(ray.GetPoint(position).x, ray.GetPoint(position).y, 0);

        position += 1f;
            
    }

Thanks in advance!

Rather than going through all the trouble of calculating the ray and getting the position to move based on that, you can simply use the Vector2.MoveTowards or Vector2.Lerp to move your gameobject.