Noticias

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

dudas con UI button

Iniciado por gregory gregory, Mayo 17, 2017, 05:49:16 AM

Tema anterior - Siguiente tema
Mayo 17, 2017, 05:49:16 AM Ultima modificación: Mayo 17, 2017, 11:23:43 AM por pioj
hola amigos tengo un problema con el button a la hora de colocarle  un script  de un cronometro  bueno mi problemas es que cuando presiono el botón para poner en marcha el cronometro solo  avanza unos milis segundo y se para, tengo que presionar otra vez  para que avance en donde se dejo pero no actúa como un cronometro normal el script trabaja perfecta mente en start y update pero cuando lo coloco en button actúa de esa manera que me pueden sugerir para que el cronometro avance normalmente.
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class contador : MonoBehaviour {
    public Text texto;
    float tiempo =4F;
    void Start () {
          texto.text = ""+ tiempo;
    }
    void Update () {     
    }
    public void boton(){
        tiempo -= Time.deltaTime;
        texto.text =""+tiempo;
        
        }
    
}

 

El botón llama 1 sola vez la función que le pasas, lo que tienes que hacer es poner la función en el update y "activar" el cronómetro con el botón.
 

Update () {
 if(activo)
 //lo que ahora tienes en boton
}
boton () {
 activo = !activo;
}

 
Así cuando pulses botón paras o inicias el cronómetro, también puedes reiniciar poniéndolo a 4 de nuevo.

Mayo 18, 2017, 07:36:43 PM #2 Ultima modificación: Mayo 18, 2017, 08:50:06 PM por pioj
gracias amigo si funciono  gracias por ayudarme aquí dejo el código por  si alguien quiere hacer un cronometro que llegue a un tiempo determinado y comienza en el tiempo que ustedes deseen 
 
  
 

 public Text texto;
    float tiempo =4F;
    bool activo=false;
    void Start () {
        texto.text = ""+ tiempo;
    }
    public  void Update () {
        if(activo){
             tiempo -= Time.deltaTime;
            texto.text =""+tiempo;
            }
            if(tiempo<=0f)
            {
                tiempo=4f;
                activo =! activo;
            } 
    }
    public void boton(){
        activo =! activo;
        }
    
}

 
 

Etiquetas: