How do I make an object move towards another object and then keep that direction

I want to instantiate a Projectile and making it move towards Enemy but not change direction (so if enemy is straight above the object that instantiates it at frame its instantiated the Projectile will start moving straight above the player toward the enemy, but if the enemy moves the Projectile will not change direction). Effectively I want a MoveToward but it doesn’t change direction and keeps going past the area where it was initially shot toward (basically just keeps flying until its destroyed, which I might do with a timer if it doesn’t hit anything in time)

EDIT: Also I want so I can choose at which speed the object flies, maybe with a serialized float?

Assuming the script is on the player, you can get the direction from player to target in this way:

Vector3 direction = (target.transform.position - transform.position).normalized;

You can get a serialized field using [serializedfield] float speed;

Now you can move the projectile in the direction where the enemy was to start with, not where the enemy has moved to. how you move depends on whether you are using transform.Translate or Physics to move the projectile. If you’re using transform.Translate, you would code something like:

void Update()
{
   Vector3 distance = direction * speed * Time.DeltaTime;
   projectile.transform.Translate(distance);
}