- Home /
Timer not working in prefabs
I'm trying to make a little sequence in which squads "rains" from above, then after 2 seconds they come from right to left, 2 seconds after from downside to upper side, then left-right and back to the beggining, and so on. Our teacher told us to call a timer in order to do that, so I made these 2 scripts:
-This one is the GameObject, which orders from what side do they have to fall
public class EntregaNotaMaxima : MonoBehaviour
{
public float Contador = 8f;
public GameObject Prop;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
Contador -= Time.deltaTime;
if (Contador <= 8f && Contador > 6f)
{
GameObject NewProp = (GameObject)Instantiate(Prop, new Vector2(Random.Range(-7f, 7f), 6), Quaternion.Euler(0, 0, 0));
Destroy(NewProp, Random.Range(0f, 3f));
}
if(Contador <=6f && Contador > 4f)
{
GameObject NewProp = (GameObject)Instantiate(Prop, new Vector2(7, Random.Range(-7f, 7f)), Quaternion.Euler(0, 0, 0));
Destroy(NewProp, Random.Range(0f, 3f));
}
if(Contador <=4f && Contador > 2f)
{
GameObject NewProp = (GameObject)Instantiate(Prop, new Vector2(Random.Range(-7f, 7f), -6f), Quaternion.Euler(0, 0, 0));
Destroy(NewProp, Random.Range(0f, 3f));
}
if(Contador <=2f && Contador > 0f)
{
GameObject NewProp = (GameObject)Instantiate(Prop, new Vector2(-7, Random.Range(-7f, 7f)), Quaternion.Euler(0, 0, 0));
Destroy(NewProp, Random.Range(0f, 3f));
}
if(Contador <= 0f)
{
Contador = 8f;
}
}
}
-This one is for the squad prefab, which says in what direction do they have to fall:
public class MovimientoObjeto : MonoBehaviour {
public float Speed = 10;
public float Cont = 8f;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
Cont -= Time.deltaTime;
if (Cont <= 8f && Cont > 6f)
{
transform.Translate(Vector2.down * Speed * Time.deltaTime);
}
if (Cont <= 6f && Cont > 4f)
{
transform.Translate(Vector2.left * Speed * Time.deltaTime);
}
if (Cont <= 4f && Cont > 2f)
{
transform.Translate(Vector2.up * Speed * Time.deltaTime);
}
if (Cont <= 2f && Cont > 0f)
{
transform.Translate(Vector2.right * Speed * Time.deltaTime);
}
if (Cont <= 0f)
{
Cont = 8f;
}
}
}
The problem is that the timer(Cont) at the second script does not vary, even thought the timer on the first script(Contador) does. Is there anny manner to make the timer(Cont) on the second script work?
I am VERY VERY new at this(I started lessons on school few weeks ago) so i know very little concepts right now. I would be so thankful if someone can help me with this problem! ^^
Your answer
Follow this Question
Related Questions
Subtract milliseconds from 12 hours? 1 Answer
How to make reverse countdown timer in unity? 1 Answer
How to display gameobject(prefab folder) as image? 1 Answer
using Contains(gameObject) to find and destroy a gameObject from a list 2 Answers
How do I only clone 1 enemy instead of infinity enemies?? 2 Answers