smooth speed decrease

Good Evening,

I created a scrolling infinite background for my game and it offsets the material on a quad using this code:
using UnityEngine;
using System.Collections;

public class Scrolling : MonoBehaviour
{
public float speed = 0.0f;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () 
{
	GetComponent<Renderer>().material.mainTextureOffset =  new Vector2 (Time.time * speed, 0);

}

}

my character is being shot out of cannon and i want speed to slow down over time. So I added this code to my game for when the game starts.

using UnityEngine;
using System.Collections;
using DG.Tweening;

public class GameStart : MonoBehaviour {

public float speed = 0.0f;
public float timer = 0.0f;
public float speed_timer = 0.0f;
public float reset_speed_timer = 0.0f;
public GameObject Background;
public GameObject Water;
public GameObject BackgroundTrees;
public GameObject ForegroundTrees;
public GameObject ForegroundClouds;
public GameObject MidGroundClouds;
public GameObject Knife;

private Scrolling BGScrollScript;
private Scrolling waterScrollScript;
private Scrolling BGTreeScrollScript;
private Scrolling FGTreeScrollScript;
private Scrolling FGCloudScrollScript;
private Scrolling MGCouldScrollSCript;
private Knife_Move knifeTween;

public GameObject parentGameobject;

// Use this for initialization
void Start ()
{
	BGScrollScript = Background.GetComponent<Scrolling> ();
	waterScrollScript = Water.GetComponent<Scrolling> ();
	BGTreeScrollScript = BackgroundTrees.GetComponent<Scrolling> ();
	FGTreeScrollScript = ForegroundTrees.GetComponent<Scrolling> ();
	FGCloudScrollScript = ForegroundClouds.GetComponent<Scrolling> ();
	MGCouldScrollSCript = MidGroundClouds.GetComponent<Scrolling> ();
	knifeTween = Knife.GetComponent<Knife_Move>();

	BGScrollScript.speed = 0.0f;
	waterScrollScript.speed = 0.0f;
	BGTreeScrollScript.speed = 0.0f;
	FGTreeScrollScript.speed = 0.0f;
	FGCloudScrollScript.speed = 0.0f;
	MGCouldScrollSCript.speed = 0.0f;

	GameObject.FindGameObjectWithTag ("Speed_Part").GetComponent<ParticleSystem> ().enableEmission = false;

}

// Update is called once per frame
void Update () 
{
	
	timer -= Time.deltaTime;
	speed_timer -= Time.deltaTime;

	if (timer <= 0) 
	{
		
		BGScrollScript.speed = 0.02f * speed;
		waterScrollScript.speed = 0.09f * speed;
		BGTreeScrollScript.speed = 0.05f * speed;
		FGTreeScrollScript.speed = 0.09f * speed;
		FGCloudScrollScript.speed = 0.027f * speed;
		MGCouldScrollSCript.speed = 0.021f * speed;
		knifeTween.startMove = true;
		GameObject.FindGameObjectWithTag ("Speed_Part").GetComponent<ParticleSystem> ().enableEmission = true;
	
	}

	if (speed_timer <= 0) 
	{
		if (speed > 0) {
			speed -= 0.1f;
			speed_timer = reset_speed_timer;
		}
	}

}

}

The problem is everytime my speed decreases by 1 the background kind of jumps instead of doing it smoothly. I tried changing the Time.Time to Time.deltatime and my background doesn’t even move period. Any help would be appreciated to pointing me in the right direction.

I figured this out just encase anyone wants to know. I found this code on youtube and the deltaTime is so much smoother than Time.time.

using UnityEngine;
using System.Collections;
using DG.Tweening;

public class Scrolling : MonoBehaviour
{
public float speed = 0.0f;

// Use this for initialization
void Start ()
{

}

// Update is called once per frame
void Update () 
{

	MeshRenderer mr = GetComponent<MeshRenderer> ();
	Material mat = mr.material;
	Vector2 offset = mat.mainTextureOffset;
	offset.x += Time.deltaTime * speed;
	mat.mainTextureOffset = offset;

	

}

}