Noticias

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

problema para recoger objetos

Iniciado por S0LXZ, Mayo 24, 2018, 08:04:56 PM

Tema anterior - Siguiente tema
Muy buenas, estoy intentando hacer que mi jugador recoja un objeto y se le sume a un contador.
 
Lo que pasa es que no se porque pasa esto, creo que el script esta bien pero no se en que fallo
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Salud : MonoBehaviour {
public Text Curaciones;
private int Curas;
void Awake(){
   Curaciones.text = "Curaciones:";
}
void OnTriggerEnter(Collider other){
   if (other.tag == "Salud") {
      Curas++;
      Destroy (other.gameObject);
      Contador ();
   }
   }
public void Contador(){
   Curaciones.text = "Curaciones:" + Curas;
}
}

 
Espero que me podais ayudar. Gracias

que texto escribe cuando cojes el objeto?
 
sale algun error en la "consola"?
 
lo unico que veo que puede ser es que no has "inicializado" tu "int" Curas.
 

private int curas = 0;

 
o en void Start o Awake darle un valor inicial...

Mayo 25, 2018, 05:46:42 AM #2 Ultima modificación: Mayo 25, 2018, 05:46:57 AM por lightbug
Cita de: S0LXZ date=1527185096creo que el script esta bien
   


En estos casos, casi todos los post que tratan de lo mismo (si buscas en este sitio vas a encontrar por lo menos 20 post) el código está perfecto, pero el problema está en la escena/proyecto, busca en la documentación la tabla de colisiones (aparecen X's ), fijate entre que y que se da un OnTriggerEnter, (no se da con cualquier cosa) una vez tengas esos tipos de objetos y el obj tenga el tag correspondiente debería funcionar. Y si querés estar seguro de que pasa lo que pasa simplemente usá la consola, sino estás adivinando si esto anda o no, la incertidumbre es lo peor, siempre matá estas cuestiones, un simple print("anda") en cualquier lado del código te saca de esto y no cuesta nada.
 

void OnTriggerEnter(Collider other){
print("anda el ontrigger");
   if (other.tag == "Salud") {
      print("se mete al if");
      Curas++;
      Destroy (other.gameObject);
      Contador ();
   }
}

 
tecnicamente podés hacer debugging para esto pero con el print esta bien

Cita de: lightbug date=1527220002En estos casos, casi todos los post que tratan de lo mismo (si buscas en este sitio vas a encontrar por lo menos 20 post) el código está perfecto, pero el problema está en la escena/proyecto, busca en la documentación la tabla de colisiones (aparecen X's ), fijate entre que y que se da un OnTriggerEnter, (no se da con cualquier cosa) una vez tengas esos tipos de objetos y el obj tenga el tag correspondiente debería funcionar. Y si querés estar seguro de que pasa lo que pasa simplemente usá la consola, sino estás adivinando si esto anda o no, la incertidumbre es lo peor, siempre matá estas cuestiones, un simple print("anda") en cualquier lado del código te saca de esto y no cuesta nada.
   
   

void OnTriggerEnter(Collider other){
print("anda el ontrigger");
   if (other.tag == "Salud") {
      print("se mete al if");
      Curas++;
      Destroy (other.gameObject);
      Contador ();
   }
}

   
      tecnicamente podés hacer debugging para esto pero con el print esta bien
   


Y por que no usar breakpoint, sería más fácil de debugear cada para por el que pasa .

Cita de: francoe1 date=1527258825Y por que no usar breakpoint, sería más fácil de debugear cada para por el que pasa .
   


sí, también

estoy en la tabla y esta todo con el tic
ok ya lo he solucionado muchas gracias a todos

Etiquetas: