Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

(RESUELTO) Restar valor a un static float.

Iniciado por ramunda, Febrero 22, 2017, 02:55:36 PM

Tema anterior - Siguiente tema
Febrero 22, 2017, 02:55:36 PM Ultima modificación: Febrero 23, 2017, 12:46:03 AM por ramunda
Muy buenas tardes, he retomado Unity después de un letargo....y creo que me he oxidado...
 
Según lo que sabia esto deberia funcionar, pero por al guna razón se me olvida algo que no se que es.
 
Tengo dos GO(Gameobjects), uno con rigid t triger y collider y el otro con collider sin triguer.
 
En uno tengo este script:
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class tiempodinero : MonoBehaviour {
public static float totaldinero = 400f;
public Text dinero;
void Start () {
dinero.text=string.Format ("{0}","$"+totaldinero);
}
}

 
bien funciona perfectamente y se muestra en pantalla el valor de 400.
 
Ahora en el otro objeto tengo que restarle 50 al valor de 400 al entrar en contacto(triggerenter) y lo pongo asi:
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class restadinero : MonoBehaviour {
void OnTriggerEnter(Collider other)
{
   if (other.tag == "gas")
   {
      Debug.Log("tocado");
      tiempodinero.totaldinero -= 50f;
   
   }
}
}

 
Bien esto deberia restar 50 al 400....unity no me da error ni nada, pero, no me resta el valor.
 
Ni que decir tiene que los tags están al dia.
 
Agradecería una pequeña ayuda/sugerencia.
 
Gracias de antemano.
 
 
 
 
 
 
 
 
 
 

Hola! no me quedo claro si te imprime el "tocado", osea si funciona el triggerenter.

Cita de: lightbug date=1487772229Hola! no me quedo claro si te imprime el "tocado", osea si funciona el triggerenter.
   


Hola lightbud , gracias por el interés, la respuesta es SI, imprime el "tocado" , lo puse  adrede para ver si se realizaba la colisión :)

Ah ahora veo lo que pusiste arriba, no es que no te lo resta, es que no actualizas el string en el update! pone lo siguiente:
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class tiempodinero : MonoBehaviour {
public static float totaldinero = 400f;
public Text dinero;
void Start () {
   dinero.text=string.Format ("{0}","$"+totaldinero);
}
    void Update()
    {
        dinero.text=string.Format ("{0}","$"+totaldinero);
    }
}

 
lo mismo que en start o podes evitar el start como quieras

Febrero 22, 2017, 04:08:51 PM #4 Ultima modificación: Febrero 23, 2017, 12:45:03 AM por ramunda
Madre mía...como no lo he visto...:( oxidado no..estoy para desguace hahha.
 
No estoy delante de el pc para confirmarte que funciona, pero estoy al 100% seguro y de acuerdo con que es eso.
 
Mil gracias por la atención y la pronteza.
 
Un abrazo!!
 
P.D esta noche confirmo y doy el post como resuelto :).
 
Edito: todo resuelto , funciona de maravilla.
 
Gracias!!!
 
 

Etiquetas: