- Home /
How to Change Background Sprite at run time ?
I am making a game having different scenarios. It is an endless runner with four different characters . After certain score amount I want to change the sprite in background and also the character itself .I have written a code to spawn background one after other .
using UnityEngine; using System.Collections;
public class SpawnerScript1 : MonoBehaviour {
public GameObject background;
public Transform bga;
public Transform bgb;
float finalpos;
public float spawnTime;
// Use this for initialization
void Start () {
Spawn ();
finalpos = bgb.position.x - bga.position.x;
}
void Spawn()
{
bgb.position = new Vector3 (bgb.position.x + finalpos, bgb.position.y , bgb.position.z);
Instantiate (background, b.position, Quaternion.identity);
Invoke ("Spawn", spawnTime);
}
public void Stopinvokation()
{
CancelInvoke ("Spawn");
}
}
Now , How can I change background after some time .So that this same code snippet is used but with other background on it .Just Keep in mind that I have to change the sprite from other script not this one , from the script in which i am calculating the score .
$$anonymous$$aybe add a public reference to the instantiated background in your class, and see if you can access it using your score script
e.g. public GameObject theBackground;
then in spawn, theBackground = Instantiate(background, b.position, Quaternion.identity);
You should be able to access in your score script using GameObject accessedFromHere = Spawnerscript1.theBackground;
If you still can't get access, try changing "public GameObject theBackground;" to public static GameObject theBackground;
Your answer
Follow this Question
Related Questions
If you change the rigidBody2D.position, you also need to change the gameObject.transform.position? 0 Answers
Component without gameObject 2 Answers
Assigning to global transforms of current gameobject 1 Answer
Translate.transform problems (collision/Rigibody) 0 Answers
GetComponent of ALL clones? 2 Answers