Buenos días,
Estoy tratando de hacer un videojuego con un countdown en el que cada vez que el objeto colisione con otro, a parte de sumar puntos también sume 5s más en el cronómetro. El timer y el score ya los tengo hechos (ambos con GUIText) , pero lo que no soy capaz es de que el script que contiene el collider llame al script del timer, que es contiene el Guitext del cronometro.
En resumidas cuentas, lo que quiero es que el segundo script al colisionar sume 5 s más al primer script. Os adjunto lo que he hecho, aunque no me funciona (estoy aprendiendo a programar poco a poco). Gracias de ante mano.
Este es el script del
timer:
using UnityEngine;
using System.Collections;
public class Timer : MonoBehaviour
{
public GUIText tiempoText;
public float tiempo = 0.0f;
public void Update()
{
tiempo = tiempo - 1 * Time.deltaTime;
tiempoText.text = "" + tiempo.ToString("f0");
if (tiempo <= )
Application.LoadLevel("ranking");
}
}
Y este es el de los
puntos + collider:
using UnityEngine;
using System.Collections;
public class colliderC : MonoBehaviour
{
public float score;
public GUIText guiScore;
public float tiempo;
public GUIText guitext;
void Start()
{
guiScore.text = "Puntos: 0";
}
void Update()
{
Timer GUIText = GetComponent<Timer>();
guitext = GUIText.tiempoText;
}
void OnTriggerEnter(Collider other)
{
if (gameObject.tag == "recolectable") ;
Destroy(other.gameObject);
score += 10;
guiScore.text = "Puntos: " + score;
//guitext.text = + tiempo;
}
}
De entrada no utilices GUIText. Desde la 4.6 se utiliza Text que debe tener como más de un año.
haz la variable public static, con eso podrás modificarla desde otro script.
en tu caso:
public static float tiempo = 0.0f
[/quote]
Y para modificarla desde otro script:
timer.tiempo =+5 //en este caso accederíamos a la variable tiempo del componente timer (el nombre del otro script) y le añadiríamos 5.
[/quote]
Recuerda que si la variable no es estática no te dejará modificarla (de hecho ni te la reconocerá cuando la intentas escribir desde otro script)
Hay más métodos, pero este es el más sencillo y el más efectivo en la mayoría de casos.
Un saludo!