Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: S0LXZ en Mayo 24, 2018, 08:04:56 PM

Título: problema para recoger objetos
Publicado por: S0LXZ en Mayo 24, 2018, 08:04:56 PM
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
Título: problema para recoger objetos
Publicado por: Igor en Mayo 24, 2018, 10:17:19 PM
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...
Título: problema para recoger objetos
Publicado por: lightbug en Mayo 25, 2018, 05:46:42 AM
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
Título: problema para recoger objetos
Publicado por: francoe1 en Mayo 25, 2018, 04:33:45 PM
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 .
Título: problema para recoger objetos
Publicado por: lightbug en Mayo 25, 2018, 04:56:09 PM
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
Título: problema para recoger objetos
Publicado por: S0LXZ en Mayo 25, 2018, 05:15:21 PM
estoy en la tabla y esta todo con el tic
ok ya lo he solucionado muchas gracias a todos