// Update is called once per frame
    void Update()
    {
        // try to go left if possible
        if (Input.GetKeyDown(KeyCode.A) && !transitioning)
        {
            if (currentLane.HasLeftLane())
            {
                transitioning = true;
                currentLane   = currentLane.GetLeftLane();
                StartCoroutine(ChangeLane());
            }
            else
            {
                Debug.Log("No left lane!");
            }
        }
        // try to go right if possible
        else if (Input.GetKeyDown(KeyCode.D) && !transitioning)
        {
            if (currentLane.HasRightLane())
            {
                transitioning = true;
                currentLane   = currentLane.GetRightLane();
                StartCoroutine(ChangeLane());
            }
            else
            {
                Debug.Log("No right lane!");
            }
        }

        if (Input.GetKeyDown(KeyCode.R))
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        }
    }