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...
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