Variables saved across sessions when i don't want them to

I have 2 scripts which i’m using to spawn obstacles. One spawns them every 3 seconds, this is also the one which holds the speed and speedup variables, and the other just makes the obstacles move and detects collisions with the player. Every time a car spawns the speed is increased by the speedup variable (speed += speedup).
The problem i’m having is that even though the speed variable is set to 550, any time I press play the speed continues off where it left of last time, e.g. if the speed was 1000 when I exited play mode, it’ll start off at 1000 again instead of 550. I don’t know what is causing this as I’m not saving the speed variable anywhere else.
I also tried increasing the speed right after the loop that spawns the cars, which fixed the issue of it not resetting across sessions but did not increase it at all, staying at the original value.
I only used PlayerPrefs to save the high score which is unrelated to the speed. Here are both the scripts. I’m new to using unity so these may not be the best way to do something like this but its how I made it work.

public class SpawnObstacles : MonoBehaviour {

    public int carsAmount = 2;

    private float delay = 3f;

    public float speed = 550f;
    public float speedup = 5f;

    private int score = 0;

    public GameObject obstacle;

    void Start() {
        StartCoroutine(SpawnCars());
    }

    IEnumerator SpawnCars() {
        yield return new WaitForSeconds(delay);

        for (int i = 1; i <= carsAmount; i++) {
            GameObject o = Instantiate(obstacle) as GameObject;
            Destroy(o, 10);
        }
        score++;

        if (score > PlayerPrefs.GetInt("HighScore", 0)) {
            PlayerPrefs.SetInt("HighScore", score);
        }

         StartCoroutine(SpawnCars());
    }

    public float GetSpeed() {
        speed += speedup;
        return speed;
    }
}

Other script

public class CarController : MonoBehaviour {

    private float speed;

    public Rigidbody rb;
    public GameObject scripts; // Gameobject that holds both scripts

    void Start() {
        speed = scripts.GetComponent<SpawnObstacles>().GetSpeed();
        rb.AddForce(new Vector3(0, 0, -speed));
    }
}

I am very confused by this and any help would be appreciated, thanks!

thats not posible. check in the inspector if the variable is going back to its value after playmode