Noticias

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

Problema con el recuento de objetos

Iniciado por S0LXZ, Julio 22, 2018, 01:45:27 PM

Tema anterior - Siguiente tema
Muy buenas, es que tengo un problema con el recuento de curaciones de mi juego.
 
Esto funciona de manera que si recoges una curación su texto suma uno y si las usas resta otro, pero si usas una y después recoges otra te suma la que ya has usado con esta y yo solo quiero que sume la que acabas de coger.
 
Espero que me puedan ayudar, Gracias!!
 

void Awake(){
   Cursor.visible = false;
   Vida.text ="Vida :"+ vida;
        Curaciones.text = "Curaciones:";
    }
void Update () {
        if (Input.GetAxisRaw("Vertical") != 0)
   {
      this.transform.Translate (-Vector3.forward * this.velocidadMovimiento * Input.GetAxisRaw ("Vertical") * Time.deltaTime); // Hacia delante
   }
   if (Input.GetAxisRaw("Horizontal") != 0)
   {
      this.transform.Translate (-Vector3.right * this.velocidadMovimientoHorizontal * Input.GetAxisRaw("Horizontal") * Time.deltaTime); // Hacia los lados
   }
   if (Input.GetAxisRaw ("Mouse X") != 0) {
      this.transform.Rotate (Vector3.up * SensibilidadHorizontal * Input.GetAxisRaw ("Mouse X") * Time.deltaTime);
   }
   if (vida <= 0) {
      Destroy (this.gameObject);
      SceneManager.LoadScene ("03HasMuerto");
   }
   if (vida < 100 && Input.GetKey (KeyCode.V) && Curas > 0) {
      vida = vida + 25;
      Vida.text = "Vida:" + vida;
      Curas = Curas - 1;
      Curaciones.text = "Curaciones:" + Curas;
   }
}
void OnCollisionEnter(Collision collision){
   if (collision.transform.tag == "Enemigo") {
      vida = vida - dañoEnemigo;
      Vida.text = "Vida :" + vida;
   }
   if (collision.transform.tag == "Jefe") {
      vida = vida - DañoJefe;
      Vida.text = "Vida :" + vida;
   }
}
   
void OnTriggerEnter(Collider other){
   if (other.tag == "Salud") {
      Curas+= 1;
      Destroy (other.gameObject);
      Contador ();
   }
}
public void Contador(){
   Curaciones.text = "Curaciones:" + Curas;
}
   
   }


 
 

pues no se muy bien porque te pasa eso...
 
el script parece estar bien...
 
puede ser algun tema del gameobject con tag "salud"? tiene padres o hijos tambien con el tag? se destruye correctamente al cojerlo?

Pon un Debug.Log () dentro del Trigger para ver si se llama más de una vez.

Cita de: juanma_teso date=1532318693Pon un Debug.Log () dentro del Trigger para ver si se llama más de una vez.
   


ya lo he hecho pero sigue igual.
 
Yo he intentado averiguar si el problema era que no se actualizaba bien el int de curas al ponerse a 0 pero no se
 
Cita de: Igor date=1532281348pues no se muy bien porque te pasa eso...
   
   
      el script parece estar bien...
   
   
      puede ser algun tema del gameobject con tag "salud"? tiene padres o hijos tambien con el tag? se destruye correctamente al cojerlo?
   


no, solo hay un objeto con ese tag

Lo único que se me ocurre es eso, que las físicas no estén funcionando bien (usar físicas y mover por Transform no es buena idea) y te llame dos veces el OnTriggerEnter, es en la única parte del código donde aumentas la variable curas?

Cita de: juanma_teso date=1532351149es en la única parte del código donde aumentas la variable curas?
   


eso es importante... si SOLO la cambias ahi deveria funcionar bien... a no ser o que no se destruya correctamente, o que lo detecte dos veces... o alguna cosa que no tenga que ver con el codigo... 
 
lo de detectarla dos veces... tiene un solo "collider" el objeto con tag "salud"? te podria pasar lo que te pasa si tiene dos colliders...

Cita de: S0LXZ date=1532344982ya lo he hecho pero sigue igual.
   


Cómo es eso del "sigue igual"? osea no se tendría que solucionar nada, solamente imprimirte el collider en cuestión que está causando problemas, con eso lo sacás al toque ... si es un problema de escena y no de código.

Cita de: Igor date=1532370298eso es importante... si SOLO la cambias ahi deveria funcionar bien... a no ser o que no se destruya correctamente, o que lo detecte dos veces... o alguna cosa que no tenga que ver con el codigo... 
   
   
      lo de detectarla dos veces... tiene un solo "collider" el objeto con tag "salud"? te podria pasar lo que te pasa si tiene dos colliders...
   


solo tiene un collider y un rigidbody, aunque no creo que el rigidbody sea un problema

Etiquetas: