It’s quit simple – you have infinity while loop
while (time > 0)
{
transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
time is set to 1 ant the beginning and never change so it’s always greater than 0
to fix this you need to change that value i.e.:
while (time > 0)
{
transform.Translate(Vector3.forward * speed * Time.deltaTime);
time -= Time.deltaTime
}