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.