Noticias

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

Temas recientes

Duda contador de puntos.

Iniciado por Argantonio, Enero 26, 2019, 08:22:22 PM

Tema anterior - Siguiente tema
Tengo un contador de 'fallos' y otro de 'aciertos',  los fallos los registro en un contador (fallos), y los aciertos en otro "aciertos", el problema es que para los aciertos uso dos botones y cada uno destruye un trigger asignado, cuando destruyo con uno de los botones el contador cuenta "1", pero cuando destruyo con el otro, me descuenta el punto.Me estaba replanteando crear dos contadores independientes (ocultos)  y luego ver de que manera puedo ¿usar otro campo de texto para que me haga la suma total?


   int contador;


   public Text Aciertos;


   ........


   

      
         Destroy(collider.gameObject);
      
      
         contador = contador +1;
      
      
         Aciertos.text = ": " + contador;
      
   


    

Enero 27, 2019, 05:25:41 AM #1 Ultima modificación: Enero 27, 2019, 10:20:58 AM por Bamf
Sí quieres la suma total, tanto de Fallos como aciertos puedes usar esto:
 

<
public int PuntajeTotal;
Public text Total;
void Update (){ 
PuntajeTotal = GetComponent<tuscriptcontador>().contador + GetComponent<tuscriptfallos>().descuento;
Total.text = ":" + PuntajeTotal;
}
>

 
(Es un ejemplo) si no te funciona, puedes indicar solo las variables y omites el GetComponent, algo como: PuntajeTotal = contador + descuento; es solo una ayuda y si sigue sin funcionar puedes buscar algo referente a lo que te mostré.

Hola Alex gracias por tu respuesta. Dos dudas; por un lado ¿va este script en el texto donde aparece el resultado? y la más importante,  el campo "<tuscriptcontaodor"> que debe contener? debo llamar a los componentes "Text" que cuenta fallos y aciertos?Gracias,  Un saludo.

Cita de: Argantonio date=1548530542... los fallos los registro en un contador (fallos), y los aciertos en otro "aciertos" ...
   


Es así? porque ahí estoy viendo solo "contador" ... ?? Recorda que UI y lógica (variables de fondo) no son lo mismo, siempre asegurate que las variables hagan lo que tengan que hacer, y luego que el UI las represente. En tu pequeño snippet de código se ve que tenés un text que se hace llamar "aciertos" y representas a contador, me estoy imaginando que para el otro (fallos o aciertos) pasa lo mismo (?)
 
Cita de: Argantonio date=1548530542pero cuando destruyo con el otro, me descuenta el punto
   


Qué es "el punto"? ...
 
quizás información más detallada ayudaría, con código completo y no solo tres líneas ... te digo porque desde que estoy aca en el foro suben algo y dicen "no me anda!" le contestás "subí el código completo por favor" y el problema surge a la vista.
 
 
 
Saludos

Cita de: Argantonio date=1548618398¿va este script en el texto donde aparece el resultado?
   


Sí, puedes ponerlo en tu Canvas y asignarle tu GameObject de texto.
 
Cita de: Argantonio date=1548618398la más importante,  el campo "<tuscriptcontaodor"> que debe contener?
   


El nombre de tu script que realiza el conteo, si todo va bien, el script debe correr perfectamente, OJO para esto, deberías tener 3 script, uno de conteo, uno descuento y otro del Total, intuyo que tu otro código que hace la función de quitar puntos es igual al que enviaste, con diferencia que este resta y no suma, en fin, coloca los nombres de tus script en esa parte < > sin las " "
 
Cualquier duda solo envíala, psdt: como dice Lightbug a la próxima que tengas este tipo de pregunta, sube el código completo, así haces que resolver el problema que tengas sea más fácil.
 
Un placer Ayudar!

Enero 29, 2019, 06:40:24 PM #5 Ultima modificación: Enero 29, 2019, 06:45:21 PM por Argantonio
Cita de: Alex date=1548636048Cualquier duda solo envíala, psdt: como dice Lightbug a la próxima que tengas este tipo de pregunta, sube el código completo, así haces que resolver el problema que tengas sea más fácil.
   
   
      Un placer Ayudar!
   


Lo que es un placer es disponer de ayuda de gente como vosotros. 
 
 
 
Cita de: lightbug date=1548623999Qué es "el punto"? ...
   


Me refería "al punto" anteriormente sumado...
 
Este es el script para uno de los botones, en el otro botón tengo asignado el mismo, pero esta vez he separado los contadores, ahora hay "contadorI", "contadorD", "contadorfallos" y "puntajetotal"
 


   

      
         using System.Collections;
      
      
         using System.Collections.Generic;
      
      
         using UnityEngine;
      
      
         using UnityEngine.UI;
      
      
         public class BTI : MonoBehaviour
      
      
         {
      
      
         int contadorI;
      
      
         public Text puntuacionI;
      
       
      
         private bool isColl = false;
      
      
         private Collider2D collider;
      
       
      
         public void destroyWithButton(){
      
      
         if(isColl){
      
      
           Destroy(collider.gameObject);
      
      
         contadorI = contadorI +1;
      
      
         puntuacionI.text = ": " + contadorI;
      
      
         Debug.Log ("bien");
      
      
         }
      
      
         }
      
       
      
         void OnTriggerEnter2D(Collider2D col){
      
      
           if(col.gameObject.tag == "izquierdo"){
      
      
           collider = col;
      
      
           isColl = true;
      
      
         }
      
      
         }
      
       
      
         void OnTriggerExit2D(Collider2D col)
      
      
         {
      
      
         if(col.gameObject.tag == "izquierdo"){
      
      
         isColl = false;
      
      
         }
      
      
           
      
      
         }}
      
   

 
Este es el de mi colisionador de fallos. 
 


   using System.Collections;


   using System.Collections.Generic;


   using UnityEngine;


   using UnityEngine.UI;


   public class Colisionador : MonoBehaviour


   {


   int contadorfallos;


   public Text puntuacionfallos;

 

   public void OnTriggerEnter2D(Collider2D trigger){


   GameObject target = trigger.gameObject;


   Destroy( target );


   contadorfallos = contadorfallos +1;


   puntuacionfallos.text = ": " + contadorfallos;


   }


   public void Awake()


   {


   contadorfallos = 0;


   puntuacionfallos.text = ": " + contadorfallos;


   }


   }

Febrero 04, 2019, 12:05:37 PM #6 Ultima modificación: Febrero 04, 2019, 12:07:25 PM por Argantonio
Solucionado. Al final conseguí que funcionara de esta manera. Gracias por vuestra ayuda.
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
public class PuntosTotales : MonoBehaviour
{
 public int contador;
    public Text Total;
    public Text AciertosD;
    public Text AciertosI;
    public Text Fallos;
void Update () {
contador = Convert.ToInt32 (AciertosD.text) + Convert.ToInt32 (AciertosI.text) - Convert.ToInt32 (Fallos.text);
Total.text = contador.ToString ();
}}

 
 

Etiquetas: