Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: gregory gregory en Mayo 17, 2017, 05:49:16 AM

Título: dudas con UI button
Publicado por: gregory gregory en Mayo 17, 2017, 05:49:16 AM
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;
        
        }
    
}

 
(//%3CfileStore.core_Attachment%3E/monthly_2017_05/contador.png.13415c2bfd46006ff37618913973fee1.png)
Título: dudas con UI button
Publicado por: juanma_teso en Mayo 17, 2017, 09:11:11 AM
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.
Título: dudas con UI button
Publicado por: gregory gregory en Mayo 18, 2017, 07:36:43 PM
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;
        }
    
}